ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

什么时候应该使用Decimal而不是double?

2022-07-21 15:02:41  阅读:192  来源: 互联网

标签:double Decimal float 应用程序 使用 类型 应该 decimal


结论:

当所需的精度由小数点右侧的位数决定时,decimal 类型是合适的。 此类数字通常用于财务应用程序、货币金额(例如 $1.00)、利率(例如 2.625%)等。 精确到只有一个小数用 decimal 类型处理会更准确:例如,0.1 可以由 decimal 实例精确表示,而没有精确表示 0.1 的 double 或 float 实例。 由于数值类型存在这种差异,因此当你对十进制数据使用 double 或 float 时,算术计算可能会出现意外的舍入错误。

可在表达式中混合使用整型类型和 decimal 类型。 在这种情况下,整型类型隐式转换为 decimal 类型。

不能在表达式中将 decimal 类型与 float 和 double 类型混合使用。 在这种情况下,如果你想要执行算术运算、比较运算或相等运算,则必须将操作数显式转换为 decimal 或反向转换

 

使用场景:

考虑使用Decimal,如果:

1、如果数字必须加起来正确或平衡,对于金融应用程序它可以提供高水平的准确性,并且易于避免舍入错误

例如,用于财务金额计算,最终balance平账是很重要的不能有丁点误差

考虑使用Double或Float,如果:

1、当优化性能比确保准确度更重要时,可以使用 double 代替 decimal。 然而,除了大多数计算密集型应用程序之外,所有应用程序都不会注意到性能上的任何差异。

2、避免使用 decimal 的另一个可能原因是为了最大限度地降低存储需求。 例如,ML.NET 使用 float,因为对于非常大的数据集,4 个字节与 16 个字节之间的差异合乎情理。

Float - 32 bit (7 digits)

Double - 64 bit (15-16 digits)

Decimal - 128 bit (28-29 significant digits)

3、Float主要用于图形库中,因为对处理能力的要求非常高,也用于可能承受舍入误差的情况。

参考:

Types - C# language specification | Microsoft Docs

Floating-point numeric types - C# reference | Microsoft Docs

标签:double,Decimal,float,应用程序,使用,类型,应该,decimal
来源: https://www.cnblogs.com/wzyandi/p/16501955.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有