当前位置: 首页 > 知识库问答 >
问题:

JavaScript添加十进制数字问题[重复]

韩鸿波
2023-03-14

所以我正在做一个脚本,把两个数字(十进制数字)加在一起,这我遇到了一个问题。

http://jsfidle.net/derekl/esqnc/

我做的剧本,结果很好:

0.1 + 0.5  //0.6
0.2 + 0.3  //0.5

但很快我就明白了:

0.1 + 0.2  //0.30000000000000004
0.01 + 0.06  //0.06999999999999999
Math.ceil   //No
Math.floor  //No
.slice      //No

共有1个答案

卫骏
2023-03-14

使用toFixed将其转换为去掉一些小数位的字符串,然后将其转换回数字。

+(0.1 + 0.2).toFixed(12) // 0.3

看起来IE的toFixed有一些奇怪的行为,所以如果您需要支持IE的话,这样的操作可能会更好:

Math.round((0.1 + 0.2) * 1e12) / 1e12
 类似资料:
  • 问题内容: 在JavaScript中验证十进制数字的最干净,最有效的方法是什么? 奖励积分: 明晰。解决方案应该干净简单。 跨平台。 测试用例: 问题答案: @Joel的答案非常接近,但在以下情况下将失败: 前段时间,我必须实现一个函数,以查明变量是否包含数值, 无论其类型如何 ,它都可能是包含数值(我还必须考虑指数符号等),对象,几乎任何东西都可以传递给该函数,我不能做任何类型假设,要注意类型强

  • 我需要一个带有2个小数的5位数整数的regex。 null null

  • 我正在使用DecimalFormats将双打格式化为字符串。然后这个字符串被集成到我的表示层中。 问题:我想保留所有的小数。示例:“12345678.123456789” 格式:#.#- 我可以用##########对于大小数点,但是如果小数点更长呢? 我发现我的小测试程序很有用,想和大家分享。 你能帮我显示所有小数吗? 这导致: 编辑:一位用户提到了一个相关的问题:如何很好地将浮点数格式化为字符

  • 我是ANTLR的新手,并使用ANTLR4(4.7.2 Jar文件)。我目前正在研究Oracle解析器。我对十进制数字有问题。我只保留了相关的部分。我的语法文件如下。 我该怎么做?我尝试过使用_input.la(-1)!='.'}?等,但对我来说并不正确。我尝试了提到的许多其他步骤(大多数解决方案适用于ANTLR3,但不适用于ANTLR4)。在lexer中有没有一种简单的方法可以做到这一点?我不想编

  • 在我的代码中 当我运行程序时,它抛出一个数字格式异常 我做错了什么?这似乎相对简单,但不起作用。

  • 我想用java类计算,但我总是通过周期数得到异常。我一直在网上寻找,但不幸的是什么也没找到。也许有人能帮我修复它。 例子: 系统出来println(新的BigDecimal(1)。除法(新的BigDecimal(4))--