关于EXCEL的一个怪异问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 13:48:39
48.7*0.05=2.435保留两位应该是2.44
在excel表格中输入=VALUE(TEXT((2000+48.7-2000)*0.05,"0.00"))却得2.43
而输入 =VALUE(TEXT((1000+48.7-1000)*0.05,"0.00"))得2.44
输入 =VALUE(TEXT((3000+48.7-3000)*0.05,"0.00"))却得2.43
输入 =VALUE(TEXT((4000+48.7-4000)*0.05,"0.00"))却得2.43
输入 =VALUE(TEXT((200+48.7-200)*0.05,"0.00"))得2.44
输入 =VALUE(TEXT(48.7*0.05,"0.00")) 得2.44
在财务报表计算时遇到第一个错误的结果,而后的数据是我的做的测试.请高手指教,

这个是浮点运算的bug,因为2000+48.7-2000得到的是48.6999999999998而非48.7

形成原因和解决方法参考:
http://support.microsoft.com/kb/78113

直接运算不就完了,何苦把数据类型变来变去的。
=ROUND(48.7*0.05,2)

数据计算越简单,越准确。建议修改公式“(2000-2000+48.7)*0.05”或者直接用48.7*0.05,就不会出错了。