十进制和双数!-我应该用哪一个?什么时候?

十进制和双数!-我应该用哪一个?什么时候?

我经常看到人们在C#中使用双打。我知道我在某个地方读到双打有时会失去精确性。我的问题是何时应该使用双数,何时应该使用十进制类型?哪种类型适合货币计算?(.)超过1亿美元)



跃然一笑
浏览 565回答 3
3回答

料青山看我应如是

为了钱,总十进制。这就是它被创造的原因。如果数字必须正确加起来或平衡,则使用十进制。这包括人们可能手工进行的任何金融存储或计算、分数或其他数字。如果数字的确切值不重要,请使用双倍表示速度。这包括图形、物理或其他物理科学计算,其中已经有一个“重要数字数”。

子衿沉夜

我的问题是何时应该使用双数,何时应该使用十进制类型?decimal因为当你在10^(+/-28)的范围内工作时,你对基于基本10表示的行为有期望值-基本上是金钱。double当你需要的时候相对精度(即在大数值上的尾数中丢失精度不是问题)double覆盖超过10^(+/-300)。科学计算就是最好的例子。哪种类型适合货币计算?十进制,十进制, 十进制不接受替代品。最重要的因素是double作为二进制部分实现,不能准确地表示多个decimal分数(如0.1)完全没有而且它的总位数较小,因为它是64位宽比128位。decimal..最后,财务应用程序通常必须遵循特定的舍入模式(有时是法律规定的)。decimal 支持这些; double不会的。

MMMHUHU

System.Single / 浮子-7位数系统.双倍 / 双倍-15-16位数系统,十进制 / 十进制-28-29位数我被错误的类型(几年前)刺痛的方式是大量的:GB 520,532.52-8位数字GB 1,323,523.12-9位数你花了一百万买一辆花车。a 15位数货币价值:GB 1,234,567,890,123.459万亿和两倍。但是通过除法和比较,这就更复杂了(我绝对不是浮点和无理数方面的专家-)见马克的观点)。混合小数和双数会引起以下问题:如果使用十进制数,使用浮点数的数学或比较操作可能不会产生相同的结果,因为浮点数可能不完全接近十进制数。我什么时候应该用双数代替十进制?有一些相似的更深入的答案。使用double而不是decimal 用于货币用途是一种微观优化-这是我看待它的最简单的方法。
打开App,查看更多内容
随时随地看视频慕课网APP