Java的BigDecimal是与C#的Decimal相对应的最接近的数据类型吗?

B. *_*non 13 c# java decimal complex-data-types bigdecimal

根据这里的图表,Java到C#的Decimal中的等效数据类型是"BigDecimal".

这真的是这样吗?怎么了"大"序言?在Java中似乎没有"SmallDecimal"或"LittleDecimal"(更不用说"MediumSizedDecimal").

不过,我必须说,这张图表是我在这个主题上发现的最清楚的东西; 在这里,这里这里的其他链接对我来说就像密西西比河在暴风雨之后一样清晰.

Eri*_*ert 28

这真的是这样吗?

它们相似但不完全相同.更具体地说:Java版本可以表示C#版本可以包含的每个值,但事实恰恰相反.

怎么了"大"序言?

Java BigDecimal可以具有任意多的精度,因此可以任意大.如果你想制作一个具有千位精度的BigDecimal,你就可以前进了.

相比之下,C#十进制具有固定的大小; 它占用128位并提供28位小数的精度.

更确切地说:两种类型都为您提供表格编号

+/- someInteger / 10 ^ someExponent
Run Code Online (Sandbox Code Playgroud)

在C#中,BigDecimal是一个96位无符号整数,BigDecimal是0到28之间的整数.

在Java中,decimal具有任意大小并且someInteger是带符号的32位整数.


nik*_*3ro 17

是的 - 这是相应的类型.

因为你在C#之后使用Java - 不要太惊讶于发现这样的细微差别 - 或者当没有简单的方法来做一些"容易"做C#的事情时会感到非常沮丧.我想到的第一件事是int&int? - 在Java中你只需要使用int和Integer.

C#很有可能在Java之后出现,所以很多(我主观看到的)糟糕的决定已被修复/简化.此外,它有助于C#由Andres Hejlsberg(他可以说是最好的编程语言设计师之一)设计并且经常"更新"而不像Java(您可能目睹了自2000年以来添加到C#的所有内容 - 完整列表)

  • 它有一个很好的理由被称为"大".详情请见我的回答. (3认同)
  • Java中可空int的优点是整数.我同意Hejlsberg - 他应该在山上有一个位置.拉什莫尔的极客.我仍然想知道为什么它被称为"大"小数,但是 - 与什么相关的大? (2认同)
  • 现在,对于Java"定期更新",我注意到Java刚刚进行了重大修改,因此它现在具有*许多*C#2.0的功能. (2认同)