根据图表here,Java到C#的十进制的等效数据类型是" BigDecimal"。
这真的是这样吗?什么" Big"前言?它似乎不是一个" SmallDecimal"或者" LittleDecimal" (更不用说#34; MediumSizedDecimal")用Java。
但是,我必须说,这个图表是我在这个主题上发现的最清楚的东西;在暴风雨之后,其他链接here和here以及here对我来说就像密西西比河一样清晰。答案 0 :(得分:25)
这真的是这样吗?
它们相似但不完全相同。更具体地说:Java版本可以表示C#版本可以包含的每个值,但事实恰恰相反。
" Big"是什么?前言?
Java BigDecimal可以具有任意精度,因此可以任意大。如果你想制作一个具有千位精度的BigDecimal,你就可以了。
相比之下,C#十进制具有固定的大小;它占用128位,给你28位小数的精度。
更确切地说:两种类型都为您提供表格编号
+/- someInteger / 10 ^ someExponent
在C#中,someInteger
是96位无符号整数,someExponent
是0到28之间的整数。
在Java中,someInteger
具有任意大小,someExponent
是带符号的32位整数。
答案 1 :(得分:16)
是的 - 这是相应的类型。
因为你在C#之后使用Java - 不要太惊讶于发现这样的小细微差别 - 或者当没有简单的方法去做一些事情时会感到很沮丧"轻松&# 34;做C#。我想到的第一件事就是int&诠释? - 在Java中,你只需使用int和Integer。
C#在追随Java之后有了很大的优势,所以很多(我主观看到的)糟糕的决定已被修复/简化。此外,它有助于C#由Andres Hejlsberg(可以说是最好的编程语言设计师之一)设计,并定期更新"与Java不同(您可能目睹了自2000年以来添加到C#的所有内容 - complete list)