【发布时间】:2010-10-22 15:20:55
【问题描述】:
我可以说出使用double(或float)而不是decimal 的三个优点:
- 使用更少的内存。
- 更快,因为处理器本身就支持浮点数学运算。
- 可以表示更大范围的数字。
但这些优势似乎只适用于计算密集型操作,例如建模软件中的操作。当然,当需要精度时,不应该使用双精度数,例如财务计算。那么在“普通”应用程序中选择double(或float)而不是decimal 有什么实际理由吗?
编辑添加: 感谢大家的好评,我向他们学习了。
还有一个问题:一些人指出双精度数可以更精确地表示实数。当声明时,我认为它们通常也更准确地代表它们。但是,当执行浮点运算时,准确度可能会降低(有时会显着降低),这是真的吗?
【问题讨论】:
-
这经常被投票,我仍然在努力。例如,我正在开发一个进行财务计算的应用程序,因此我始终使用小数。但是 Math 和 VisualBasic.Financial 函数使用 double 所以有很多转换让我不断地猜测小数的使用。
-
@JamieIde 太疯狂了,财务函数使用双精度,货币应始终为十进制。
-
@ChrisMarisic 但是jamie Ide 可以用double 处理遗留的废话做什么?那么你也应该使用 double 否则许多转换会导致舍入错误......难怪他提到 VisualBasic pfffhh......
-
@Elisabeth 我可能会使用正确支持十进制的不同库。 VisualBasic.Financial 提供的任何东西都可能存在于当今的多个其他库中
标签: c# types floating-point double decimal