2017-05-04 10 views
0
C#에서 (0.406 * 10000.0) 반환 4060.0000000000005 대신 4060.0

잘못된 계산

내가 더 확인하는 기능을 쓴 이유는

. 십진수는 double 값으로, 아래는 내가 사용하고있는 코드입니다. 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); 
} 

답변