2017-05-04 220 views
0

爲什麼(0.406 * 10000.0)回報4060.0000000000005而不是4060.0在C#計算不正確的C#

我已經寫了哪些檢查沒有的功能。雙精度值和小數點以下是我正在使用的代碼。當的d is 0.406值和n is 4值和函數返回true代替false

我願意使用替代的解決方案發生在上面的語句中描述的問題。

public static bool HasMoreThanNDecimals(double d, int n) 
{ 
    return !(d * (double)Math.Pow(10, n) % 1 == 0); 
} 

回答