Frage

In C #, wenn ich ein Doppelzimmer (1,71472) in einen int umwandeln will, dann erhalte ich die Antwort 2. Wenn ich dies tue in Java intValue () Methode verwendet wird, bekomme ich 1 als Antwort.

Ist Java abrunden auf Conversions?

Warum haben die Java-API-Dokumentation so wenig Informationen über ihre Klassen d

  

Gibt den Wert der angegebenen   Nummer als Int. Dies kann bedeuten,   Runden oder Kürzen.

Ein bisschen mehr Informationen über die Runden gewesen wäre hilfreich!

War es hilfreich?

Lösung

Java Runden gegen Null, wenn sie von einem Gleitkomma auf eine ganze Zahl Verengung Typ-und so auch C #, wenn Sie die Guss Umwandlung verwenden. Es ist Convert.ToInt32 die Runden:

double d = 1.71472;
int x = (int) d; // x = 1
int y = Convert.ToInt32(d); // y = 2

Details finden Sie in der Java Language Specification gefunden werden . Beachten Sie, dass die Dokumentation in Number genannten Optionen offen für Subklassen Blätter, die Dokumentation über die konkreten Boxen-Typen, wie Double, über die Implementierung explizit ist:

  

Gibt den Wert dieses Doppel als   int (durch Gießen auf den Typ int).

Bei der Verwendung von BigDecimal , können Sie eine von acht verschiedenen Rundungsrichtlinien festlegen können.

Andere Tipps

Java Runde gegen Null, wenn sie von einem Gleitpunkt zu einem Integer-Typ verengenden.

Es gibt weitere Dokumentation über die allgemeinen Regeln in dem Programmiersprache Java Spezifikation . Beachten Sie, dass die Dokumentation in Number Optionen offen für Subklassen verlässt, ist die Dokumentation über die konkreten Boxen Arten expliziter:

  

Gibt den Wert dieses Doppel als   int (durch Gießen auf den Typ int).

Bei der Verwendung von BigDecimal , können Sie eine von acht verschiedenen Rundungsrichtlinien festlegen können.

Jon Skeet ist richtig, aber etwas anderes zu achten ist, dass .NET verwendet Bankers Rounding als Rundungsalgorithmus. Wenn Sie das auf halber Strecke zwischen Runde in Richtung der geraden ganzen Zahl.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top