一个简单的公式出乎意料的结果

时间:2016-06-03 12:07:20

标签: excel excel-formula

我已经尝试了以下公式:Excel 2013(桌面版)和Excel Online,两者都返回了相同的奇怪结果。但是我已经尝试使用Google表格,并且在所有情况下都会返回预期的结果。

细胞:

(event.target as HTMLInputElement).value

在单元格B2中,我得到A2中数字的小数部分,它可以正常工作

A2 = 1937.7
C1 = 20

问题在于:

B2 =   =(A2-INT(A2))*100

当A2中的分数为7时,结果为预期值(3),但当分数为8时,当预期值为4时,结果仍为3。

现在,如果我将A2的整数部分更改为1,那么在任何情况下都没有问题。

此处是Excel工作表https://onedrive.live.com/redir?resid=737F94B0DCBC9094!5483&authkey=!ABfKYkDITdITGqE&ithint=file%2cxlsx

的链接

1 个答案:

答案 0 :(得分:0)

你遇到了所谓的“舍入错误”。对于Excel和大多数计算机电子表格程序使用的双精度数,A2-int(a2)不能在IEEE标准下精确表示为0.8。它存储为0.799999999999955。

您可以通过四舍五入到所需的精确度来纠正问题。

例如:

B2: =ROUND((A2-INT(A2))*100,0)

请参阅Floating Point Arithmetic may give inaccurate results in Excel