使用Float或Decimal作为会计应用程序的美元金额?我们正在用VB.NET和SQL Server重写我们的旧会计系统。我们引入了一个新的.NET / SQL程序员团队来进行重写。大多数系统已经使用Floats完成了Dollar数量。我编程的遗留系统语言没有Float,所以我可能会使用Decimal。你有什么建议?Float或Decimal数据类型应该用于美元金额吗?两者的优点和缺点有哪些?在我们的日常scrum中提到的一个骗局是,当你计算一个返回超过两个小数位的结果的金额时,你必须要小心。听起来你必须将金额四舍五入到小数点后两位。另一个Con是所有显示和打印金额必须有一个显示两个小数位的格式声明。我注意到有几次没有这样做,金额看起来不正确。(即10.2或10.2546)专家是Float只占用磁盘上的8个字节,其中Decimal占用9个字节(十进制12,2)
3 回答

鸿蒙传说
TA贡献1865条经验 获得超7个赞
首先,您应该阅读每个计算机科学家应该知道的关于浮点运算的内容。那么你应该考虑使用某种类型的定点/任意精度数字包(例如java BigNum,python十进制模块),否则你将陷入一个受伤的世界。然后弄清楚是否使用本机SQL十进制类型就足够了。
浮点/双打存在(ed)以暴露快速x87 fp,现在已经过时了。如果您关心计算的准确性和/或不完全补偿其限制,请不要使用它们。
添加回答
举报
0/150
提交
取消