JavaScript中为何0.1+0.2不等于0.3等运算结果异常?
- 内容介绍
- 文章标签
- 相关推荐
本文共计437个文字,预计阅读时间需要2分钟。
gistfile1.txt + 发现的问题: console.log(0.1 + 0.2); // 0.30000000000000004console.log(0.3 - 0.2); // 0.09999999999999998console.log(19.9 * 100); // 1989.9999999999998原因:JavaScript 中的 number 类型就是浮点型,JavaScript 中的浮点
发现的问题: console.log(0.1+0.2); //0.30000000000000004 console.log(0.3-0.2); //0.09999999999999998 console.log(19.9*100); //1989.9999999999998 原因: JavaScript 中的 number 类型就是浮点型,JavaScript 中的浮点数采用IEEE-754 格式的规定,这是一种二进制表示法,可以精确地表示分数,比如1/2,1/8,1/1024,每个浮点数占64位。但是,二进制浮点数表示法并不能精确的表示类似0.1这样 的简单的数字,会有舍入误差。 由于采用二进制,JavaScript 也不能有限表示 1/10、1/2 等这样的分数。
本文共计437个文字,预计阅读时间需要2分钟。
gistfile1.txt + 发现的问题: console.log(0.1 + 0.2); // 0.30000000000000004console.log(0.3 - 0.2); // 0.09999999999999998console.log(19.9 * 100); // 1989.9999999999998原因:JavaScript 中的 number 类型就是浮点型,JavaScript 中的浮点
发现的问题: console.log(0.1+0.2); //0.30000000000000004 console.log(0.3-0.2); //0.09999999999999998 console.log(19.9*100); //1989.9999999999998 原因: JavaScript 中的 number 类型就是浮点型,JavaScript 中的浮点数采用IEEE-754 格式的规定,这是一种二进制表示法,可以精确地表示分数,比如1/2,1/8,1/1024,每个浮点数占64位。但是,二进制浮点数表示法并不能精确的表示类似0.1这样 的简单的数字,会有舍入误差。 由于采用二进制,JavaScript 也不能有限表示 1/10、1/2 等这样的分数。

