Ist Java's BigDecimal der nächste Datentyp, der C # 's Decimal entspricht?

7

Laut dem hier , der entsprechende Datentyp in Java zu C # 's Decimal ist "BigDecimal".

Ist das wirklich so? Was ist los mit der "großen" Präambel? Es scheint kein "SmallDecimal" oder "LittleDecimal" (geschweige denn "MediumSizedDecimal") in Java zu geben.

Ich muss jedoch sagen, dass dieses Diagramm das klarste war, was ich zu diesem Thema fand; die anderen Links hier und hier und hier waren für mich genauso klar wie der Mississippi nach einem sintflutartigen Sturm.

    
B. Clay Shannon 11.04.2014, 16:10
quelle

2 Antworten

11

Ja - das ist der entsprechende Typ.

Da Sie Java nach C # verwenden, seien Sie nicht zu überrascht, kleine Nuancen wie diese zu finden - oder seien Sie zu verärgert, wenn es keinen einfachen Weg gibt, etwas zu tun, das "einfach" ist, C # zu tun. Das erste, was mir in den Sinn kommt, ist int & amp; int? - In Java verwenden Sie einfach int und Integer.

C # hatte den Luxus, nach Java zu kommen, so dass viele (was ich subjektiv gesehen habe) schlechte Entscheidungen korrigiert / rationalisiert wurden. Es hilft auch, dass C # von Andres Hejlsberg entworfen wurde (der wohl einer der besten Programmiersprachen-Designer überhaupt ist) und ist im Gegensatz zu Java regelmäßig "aktualisiert" (Sie haben wahrscheinlich alle Dinge gesehen, die seit 2000 zu C # hinzugefügt wurden - vollständige Liste ) )

    
kape123 11.04.2014, 16:15
quelle
21
  

Ist das wirklich so?

Sie sind ähnlich, aber nicht identisch. Um genauer zu sein: Die Java-Version kann jeden Wert darstellen, den die C # -Version haben kann, aber das Gegenteil ist nicht wahr.

  

Was ist los mit der "großen" Präambel?

Ein Java BigDecimal kann beliebig sehr genau sein und daher beliebig groß sein. Wenn Sie ein BigDecimal mit tausend Genauigkeitsstellen erstellen möchten, gehen Sie direkt vor.

Im Gegensatz dazu hat ein C # -Zeichen eine feste Größe; es nimmt 128 Bits auf und gibt Ihnen 28 Dezimalstellen der Präzision.

Um genau zu sein: Beide Typen geben Ihnen Zahlen der Form

%Vor%

In C # ist someInteger eine vorzeichenlose Ganzzahl mit 96 Bit und someExponent ist eine Ganzzahl zwischen 0 und 28.

In Java ist someInteger von beliebiger Größe und someExponent ist eine 32-Bit-Ganzzahl mit Vorzeichen.

    
Eric Lippert 11.04.2014 19:42
quelle