Warum (0.406 * 10000.0)
kehrt 4060.0000000000005
statt 4060.0
in C#Falsche Berechnung in C#
ich eine Funktion geschrieben haben, die nicht überprüft. von Dezimalzahlen in einem doppelten Wert und darunter ist der Code, den ich verwende. Das Problem in dem oben beschriebenen Satz tritt auf, wenn Wert von d is 0.406
und Werten von n is 4
und die Funktion true
kehren statt false
Ich bin offen für alternative Lösung.
public static bool HasMoreThanNDecimals(double d, int n)
{
return !(d * (double)Math.Pow(10, n) % 1 == 0);
}