-5
在下面的例子中,出把顯示的是假爲什麼浮動值比較失敗?
float f = 0.1;
if (f == 0.1)
printf("True");
else
printf("False");
但是,如果使用整數,而不是其浮動放出來爲True 可能是什麼原因?
在下面的例子中,出把顯示的是假爲什麼浮動值比較失敗?
float f = 0.1;
if (f == 0.1)
printf("True");
else
printf("False");
但是,如果使用整數,而不是其浮動放出來爲True 可能是什麼原因?
if (f == 0.1)
這裏,0.1
是double
類型不float
類型。表達式f == 0.1
在右側存在雙精度值,它們存儲在Double-precision floating-point format中,而浮點數存儲在左側的single precision floating point format中。雙精度格式比單精度格式使用更多的位精度。
如果你想回答True,那麼在0.1
文字末尾指定f
。
float f = 0.1;
if (f == 0.1f)
printf("True");
else
printf("False");
或者
if (f == (float)0.1)
你可以只寫文字爲'0.1f'得到_more_ ** **的機會比較成功 –
使用谷歌盧克。 –
如果您使用整數,那麼這兩個值都是零。這不關你嗎? – EJP