是Java';s BigDecimal是与C#和#x27对应的最接近的数据类型;小数点是多少?

是Java';s BigDecimal是与C#和#x27对应的最接近的数据类型;小数点是多少?,c#,java,decimal,bigdecimal,complex-data-types,C#,Java,Decimal,Bigdecimal,Complex Data Types,根据图表,Java中与C#的Decimal等效的数据类型是BigDecimal 真的是这样吗?“大”序言是怎么回事?Java中似乎没有“SmallDecimal”或“LittleDecimal”(更不用说“mediumsizedecimal”) 不过,我必须说,那张图表是我在这个问题上发现的最清楚的东西;对我来说,其他的联系和联系就像暴风雨过后的密西西比河一样清晰。是的,这是相应的类型 既然您是在C#之后使用Java,那么当您发现这样的细微差别时,不要太惊讶,或者当没有简单的方法来做C#“容易”

根据图表,Java中与C#的
Decimal
等效的数据类型是
BigDecimal

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


不过,我必须说,那张图表是我在这个问题上发现的最清楚的东西;对我来说,其他的联系和联系就像暴风雨过后的密西西比河一样清晰。

是的,这是相应的类型

既然您是在C#之后使用Java,那么当您发现这样的细微差别时,不要太惊讶,或者当没有简单的方法来做C#“容易”的事情时,不要太沮丧。我首先想到的是int&int?-在Java中,只需使用int和Integer

C#有幸追求Java,所以很多(我主观上认为是)错误的决定都得到了修正/简化。此外,C#是由(可以说是当今最优秀的编程语言设计师之一)设计的,并且与Java不同,C#定期“更新”(你可能看到了自2000年以来添加到C#中的所有东西)

真的是这样吗

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

“大”序言是怎么回事

Java
BigDecimal
可以具有任意多的精度,因此可以任意大。如果你想制作一个具有千位精度的
BigDecimal
,你可以直接进行

相比之下,C#
十进制
的大小是固定的;它占128位,精度为28位小数

更准确地说:这两种类型都会给出表单的编号

+/- someInteger / 10 ^ someExponent
在C#中,
someInteger
是一个96位无符号整数,
someindex
是一个介于0和28之间的整数


在Java中,
someInteger
是任意大小的,而
someExponent
是一个有符号的32位整数。

Java中可为空的整数是整数,这一点很好。我同意海尔斯伯格的观点——他应该在拉什莫尔山的极客中占有一席之地。我仍然想知道为什么它被称为“大”十进制,尽管-大与什么有关?@B.ClayShannon我只能推测,但我猜它被命名为“大十进制”,因为它代表“大小数”。这里还有更多——它被称为“大”有一个很好的理由。请参阅我的答案了解详细信息。现在,关于“定期更新”的Java,我注意到Java刚刚经历了一次重大修订,因此它现在具有C#2.0的许多功能。@EricLippert我希望他们继续“更新”)。我很想看到Java中的var在C#中的实现方式——它在声明所有这些类的实例方面会有很大帮助。Java(或至少在Android中)中非常常见的子类另一个主要区别是,默认情况下,
bigdoull
将精确执行数学运算,或者在无法执行时抛出异常。相比之下,
Decimal
将自动舍入它无法处理的十进制数字。例如,当将1除以536870912时,Java的
BigDecimal
将计算值为0.00000000186264514923095703125,而.NET的
Decimal
将计算值为0.00000000 18626451492309570312D。@supercat
BigDouble
?那是从哪里来的?你是说
BigDecimal
?@MauricioMorales:Mea culpa。是的,
BigDecimal