[英]C - floor of double moduls integer
我需要執行以下方程式下限(e%100000),其中e是雙精度。 我知道mod只接受int值,如何實現相同的結果?
謝謝
你為什么不先發言,然后國防部,即。 floor(e) % 100000
?
也許我誤解了您要實現的目標。 您能否舉例說明您期望的輸入和輸出?
使用fmod
使用fmod()
函數代替%
。 它接受double
參數,並返回double
結果。
您可以使用除法使模等於:
double e = 1289401004400.589201;
const double divisor = 100000.0;
double remainder = e - floor(e / divisor) * divisor;
double result = floor(remainder);
printf("%f\n", result);
此打印
4400.000000
當然,這比任何內置模塊慢得多。
您還可以按照Anders K.的建議使用fmod
:)
編輯
修復了std :: cout(C ++)引用以使用printf(C)。 固定了對輸出的更改。 現在純粹是C。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.