[英]What is the corresponding data type in C# for a packed decimal in iSeries?
[英]Is Java's BigDecimal the closest data type corresponding to C#'s Decimal?
這真的是這樣嗎?
它們相似但不完全相同。 更具體地說:Java版本可以表示C#版本可以包含的每個值,但事實恰恰相反。
怎么了“大”序言?
Java BigDecimal
可以具有任意多的精度,因此可以任意大 。 如果你想制作一個具有千位精度的BigDecimal
,你就可以前進了。
相比之下,C# decimal
具有固定的大小; 它占用128位並提供28位小數的精度。
更確切地說:兩種類型都為您提供表格編號
+/- someInteger / 10 ^ someExponent
在C#中, someInteger
是96位無符號整數, someExponent
是0到28之間的整數。
在Java中, someInteger
具有任意大小, someExponent
是帶符號的32位整數。
是的 - 這是相應的類型。
因為你在C#之后使用Java - 不要太驚訝於發現這樣的細微差別 - 或者當沒有簡單的方法來做一些“容易”做C#的事情時會感到非常沮喪。 我想到的第一件事是int&int? - 在Java中你只需要使用int和Integer。
C#很有可能在Java之后出現,所以很多(我主觀看到的)糟糕的決定已被修復/簡化。 此外,它有助於C#由Andres Hejlsberg (可以說是最好的編程語言設計師之一)設計並且經常“更新”而不像Java(您可能目睹了自2000年以來添加到C#的所有內容 - 完整列表 )
C# Decimal 和 java BigDecimal 類型不是等價的。 BigDecimal 是任意精度。 它可以從字面上表示任何精度的任何數字(直到你用完 RAM)。
C# 十進制是浮點數但“固定長度”(128 位)。 大多數時候,這就足夠了! Decimal 比 BigDecimal 快得多,所以除非你真的需要很高的精度,否則它是一個更好的選擇。
您可能想要的 Java 是https://github.com/tools4j/decimal4j或類似的庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.