首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript:四舍五入到小数位数,但去掉多余的零

JavaScript:四舍五入到小数位数,但去掉多余的零
EN

Stack Overflow用户
提问于 2011-09-06 04:26:08
回答 9查看 95.6K关注 0票数 97

这是一个场景:我在应该得到1.0的时候却得到了.9999999999999999

我可以承受损失一个小数位的精度,所以我使用.toFixed(15),这是一种有效的方法。

四舍五入可以工作,但问题是我得到的是1.000000000000000

有没有办法舍入到小数点后的几位,但去掉额外的空格?

注意:.toPrecision不是我想要的;我只想指定小数点后有多少个数字。

注2:我不能只使用.toPrecision(1),因为我需要保持小数点后实际数据的高精度。理想情况下,需要的小数位数应该是一样多(最多15位)。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2011-09-06 04:37:14

代码语言:javascript
复制
>>> parseFloat(0.9999999.toFixed(4));
1
>>> parseFloat(0.0009999999.toFixed(4));
0.001
>>> parseFloat(0.0000009999999.toFixed(4));
0
票数 158
EN

Stack Overflow用户

发布于 2011-09-06 04:38:59

是的,有一种方法。使用parseFloat()

代码语言:javascript
复制
parseFloat((1.005).toFixed(15)) //==> 1.005
parseFloat((1.000000000).toFixed(15)) //==> 1

在这里看一个活生生的例子:http://jsfiddle.net/nayish/7JBJw/

票数 40
EN

Stack Overflow用户

发布于 2011-09-06 04:41:31

据我所知,您希望删除通过toFixed()获得的字符串中的尾随零。这是一个纯字符串操作:

代码语言:javascript
复制
var x = 1.1230000;
var y = x.toFixed(15).replace(/0+$/, "");  // ==> 1.123
票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7312468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档