![](/img/trans.png)
[英]Why [float.MaxValue == float.MaxValue + 1] does return true?
[英]Why is c#'s precision for float.MaxValue more than it lets on?
擺弄我發現Console.WriteLine(((3.40282347E+38 / 2) == (float.MaxValue / 2)).ToString());
在Console.WriteLine(((3.40282347E+38f / 2) == (float.MaxValue / 2)).ToString());
False
打印True
。 這是因為該語言執行此操作:
默認情況下,賦值運算符右側的實數值文字被視為double 。
您的數字是double
精度數,並且正在將其與float
進行比較,因此默認情況下精度不同。 您必須通過在數字末尾加上f
來強制數字為float
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.