Java 的 BigDecimal 是与 C# 的 Decimal 最接近的数据类型吗?
2022-09-03 08:34:30
真的是这样吗?
它们相似但不完全相同。更具体地说:Java版本可以表示C#版本可以表示的每个值,但事实并非如此。
“大”序言是怎么回事?
Java可以具有任意多的精度,因此可以任意大。如果你想做一个有一千个地方的精度,你就走在前面。BigDecimal
BigDecimal
相比之下,C#具有固定的大小;它占用128位,并为您提供28位小数精度。decimal
更准确地说:这两种类型都为您提供了表单的编号
+/- someInteger / 10 ^ someExponent
在 C# 中,是一个 96 位无符号整数,并且是介于 0 和 28 之间的整数。someInteger
someExponent
在 Java 中,是任意大小的,并且是有符号的 32 位整数。someInteger
someExponent
是的 - 这是相应的类型。
由于您在C#之后使用Java- 不要太惊讶于发现这样的细微差别 - 或者当没有简单的方法来做一些“容易”做C#的事情时,你会太沮丧。我首先想到的是int & int?- 在Java中,你只使用int和整数。
C#有幸在Java之后出现,所以很多(我主观上认为的)糟糕的决定都被修正/简化了。此外,C#是由Andres Hejlsberg(他可以说是现存最好的编程语言设计师之一)设计的,并且与Java不同,它定期“更新”(你可能目睹了自2000年以来添加到C#中的所有东西 - 完整列表)