首页 > C# > 什么时候应该使用十进制而不是双精度?哪种类型适合货币计算?

什么时候应该使用十进制而不是双精度?哪种类型适合货币计算?

上一篇 下一篇

什么时候应该使用十进制而不是双精度?哪种类型适合货币计算?

我一直看到人们在 C# 中使用双精度。我知道我在某处读到过,双倍有时会失去精度。
我的问题是什么时候应该使用双精度,什么时候应该使用十进制类型?
哪种类型适合货币计算?(即超过100亿美元)

分割线

网友回答:

我的问题是什么时候应该使用
双精度,什么时候应该使用十进制
类型?

decimal当您使用 10^(+/-28) 范围内的值并且您对基于 10 基数表示的行为有期望时 – 基本上是金钱。

double当您需要相对精度(即在大值的尾随数字中失去精度不是问题)时,跨越截然不同的幅度 – 涵盖超过 10^(+/-300)。科学计算是最好的例子。double

哪种类型适合货币
计算?

十进制、进制、十进制

不接受替代品。

最重要的因素是,作为二进制分数实现,根本无法准确表示许多分数(如 0.1),并且其总数较小,因为它是 64 位宽而不是 128 位。最后,金融应用程序通常必须遵循特定的四舍五入模式(有时是法律规定的)。 支持这些; 不。doubledecimaldecimaldecimaldouble

分割线

网友回答:

为了钱,总是十进制。这就是创建它的原因。

如果数字必须正确相加或平衡,请使用小数。这包括人们可能手动完成的任何财务存储或计算、分数或其他数字。

如果数字的确切值不重要,请使用双精度表示速度。这包括图形、物理或其他物理科学计算,其中已经有“有效数字数”。

分割线

网友回答:

根据浮点类型的特征

.NET 类型 C# 关键字 精度
System.Single ~6-9 位数字
System.Double ~15-17 位数字
System.Decimal 十进制 28-29 位数字

我因使用错误的类型(几年前)而被刺痛的方式是大量:

  • £520,532.52 – 8位数字
  • £1,323,523.12 – 9位数字

你用完了 1 万的浮存金。

15 位数的货币价值:

  • £1,234,567,890,123.45

9万亿与双倍。但是对于除法和比较,它更复杂(我绝对不是浮点数和无理数方面的专家 – 参见Marc的观点)。混合使用小数和双精度会导致问题:

如果使用十进制数,则使用浮点数的数学运算或比较运算
可能不会产生相同的结果,因为
浮点数可能不
完全接近
十进制

什么时候应该使用十进制而不是十进制?有一些类似且更深入的答案。

使用而不是货币应用程序是一种微观优化——这是我看待它的最简单的方式。doubledecimal

模板简介:该模板名称为【什么时候应该使用十进制而不是双精度?哪种类型适合货币计算?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 261次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 02-23
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
单页式简历模板 企业网站 微信公众平台 响应式 微信素材 微信文章 自适应 html5 微信图片 微信模板
您可能会喜欢的其他模板