簡體   English   中英

C-雙模底數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM