Was ist der Unterschied zwischen Math.Floor()
y Math.Truncate()
in .NET?
Antworten
Zu viele Anzeigen?Sie sind funktional äquivalent mit positiven Zahlen. Der Unterschied besteht darin, wie sie mit negativen Zahlen umgehen.
Zum Beispiel:
Math.Floor(2.5) = 2
Math.Truncate(2.5) = 2
Math.Floor(-2.5) = -3
Math.Truncate(-2.5) = -2
MSDN-Links: - Math.Floor Methode - Math.Truncate Methode
P.S. Hüten Sie sich vor Math.Round, es ist vielleicht nicht das, was Sie erwarten.
Um das "Standard"-Rundungsergebnis zu erhalten, verwenden Sie:
float myFloat = 4.5;
Console.WriteLine( Math.Round(myFloat) ); // writes 4
Console.WriteLine( Math.Round(myFloat, 0, MidpointRounding.AwayFromZero) ) //writes 5
Console.WriteLine( myFloat.ToString("F0") ); // writes 5
Versuchen Sie dies, Beispiele:
Math.Floor() gegen Math.Truncate()
Math.Floor(2.56) = 2
Math.Floor(3.22) = 3
Math.Floor(-2.56) = -3
Math.Floor(-3.26) = -4
Math.Truncate(2.56) = 2
Math.Truncate(2.00) = 2
Math.Truncate(1.20) = 1
Math.Truncate(-3.26) = -3
Math.Truncate(-3.96) = -3
Auch Math.Round()
Math.Round(1.6) = 2
Math.Round(-8.56) = -9
Math.Round(8.16) = 8
Math.Round(8.50) = 8
Math.Round(8.51) = 9
math.floor()
Gibt die größte ganze Zahl zurück, die kleiner oder gleich der angegebenen Zahl ist. MSDN system.math.floor
math.truncate()
Berechnet den ganzzahligen Anteil einer Zahl. MSDN system.math.truncate
Math.Floor()
Runden "gegen negative Unendlichkeit" in Übereinstimmung mit IEEE-Norm 754 Abschnitt 4.
Math.Truncate()
rundet " auf die nächste ganze Zahl gegen Null."