tangguo

Java的BigDecimal是最接近于C#的Decimal的数据类型吗?

c

根据此处的图表,Java中与C#等效的数据类型Decimal为BigDecimal。

真的是这样吗 “大”序言是怎么回事?Java中似乎没有“ SmallDecimal”或“ LittleDecimal”(更不用说“ MediumSizedDecimal”)了。

不过,我必须说,这张图表是我在该主题上发现的最清楚的东西。


阅读 709

收藏
2020-11-03

共2个答案

一尘不染

是的-这是相应的类型。

因为您在C#之后使用Java,所以不要惊讶于发现这样的细微差别-或在没有简单的方法来执行“容易”的C#工作时感到不高兴。我想到的第一件事是int&int?-在Java中,您只需使用int和Integer。

C#具有追赶Java的奢望,因此许多(我主观上认为)错误的决定已得到解决/简化。此外,C#由Andres Hejlsberg(可以说是最好的编程语言设计师之一)设计,并且与Java不定期进行“更新”(您可能见证了自2000年以来添加到C#的所有内容-完整列表),这对C#有所帮助。

2020-11-03
一尘不染

真的是这样吗

它们相似但不相同。更具体地说:Java版本可以代表C#版本可以代表的每个值,但事实并非如此。

“大”序言是怎么回事?

JavaBigDecimal可以具有任意多的精度,因此可以任意大。如果您想制作BigDecimal一千个精度的表,那就继续吧。

相比之下,C#decimal具有固定的大小。它占用128位,并为您提供28位小数位精度。

更准确地说:这两种类型都为您提供表格的数字

+/- someInteger / 10 ^ someExponent

在C#中,someInteger是96位无符号整数,并且someExponent是0到28之间的整数。

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

2020-11-03