下面的代碼:如何乘以ANSI C中的浮點數?
float numberForFactorial;
float floatingPart = 1.400000;
int integralPart = 1;
numberForFactorial = ((floatingPart) - (float)integralPart) * 10;
printf("%d", (int)numberForFactorial);
返回3而不是4.你能解釋我爲什麼?
可能因爲'1.40000'被內部存儲爲'1.399999'或類似的東西。如預期的那樣,(int)3.99999'爲'3'。 –
當你做'printf(「%0.6f \ n」,floatingPart)時,你會得到什麼;'? –
要擴展@ MadPhysicist的評論,從浮點到整數的轉換將截斷爲零。 –