我目前正在使用C++开发与股票市场相关的项目,其中涉及到很多浮点数类型,如价格和指数。
我阅读了很多关于在货币相关算术中应该使用十进制浮点数的文章。 为什么不使用Double或Float来表示货币? .NET中decimal、float和double之间的区别?
据我所知,浮点数和十进制浮点数的区别在于指数部分解释的基数不同,浮点数使用2作为基数,而十进制浮点数使用10。使用十进制浮点数仍然会有舍入误差,你仍然无法表达1/3(如果我理解错了,请纠正我),当你将某人的账户余额乘以30%时,可能会出现舍入误差,在进行更多计算后,舍入误差可能会更加严重。除了更大的数字范围外,我在财务算术中为什么应该使用十进制浮点数呢?