我正在研究一个使用浮点数据类型来存储应该只有两位小数(美元和美分)的值的数据库。
只要更新 float 列的人执行 ROUND,使用 float 似乎可以正常工作。当然,这并不总是发生,然后当 SUM 完成时,它总是与显示的内容相差几美分,因为显示被格式化为仅显示两个小数位。该数据库有数百个使用浮点数的表,能够自动对浮点数列进行舍入会很有帮助。
这可以做到吗?
可以在 INSERT 和 UPDATE 上使用 TRIGGER 在列上执行 ROUND 吗?
如果可以,您能否展示如何编写 TRIGGER 代码并推荐它?
还有其他想法吗?
我们正在使用SQL Server 2005。
这是一篇提出问题的帖子,会计应用程序美元金额使用浮点数还是小数?,我喜欢这样的一个回应
“您真的应该考虑使用某种类型的定点/任意精度数字包(例如,Java BigNum、python 十进制模块),否则您将陷入痛苦的世界”。