为了账号安全,请及时绑定邮箱和手机立即绑定

javaScript中的数字精度控制问题

javaScript中的数字精度控制问题

江户川乱折腾 2019-03-12 13:13:51
javaScriptde decimal.js库怎么控制数字的精度function round(x, y) {  const a = new Decimal(x).round();  Decimal.set({ precision: 2, rounding: y });  return a;}console.log(round("1235.1235", 1).valueOf()); // 1235上边是代码,不知道问题出在哪里
查看完整描述

2 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

你没有说想要的结果是什么。 
看了下文档感觉round的作用就是取整吧。 
如果要实现控制位数的话,用toExponential, toFixed和toPrecision方法吧。

x = new Decimal(255.5)

x.toExponential(5)              // '2.55500e+2'

x.toFixed(5)                    // '255.50000'

x.toPrecision(5)                // '255.50'


查看完整回答
反对 回复 2019-03-27
?
莫回无

TA贡献1865条经验 获得超7个赞

由于js是一种弱类型语言,而计算机能够读取的数字只有0&1,所以一些浮点数会转换成0&1后再进行运算,所以会出现这种精度丢失的问题,我目前了解到的有三种方式:
1.bignumber.js 通过这个js库来进行计算;
2.将需要运算的数进行乘以10的n次幂,运算之后再去处以10的n次幂,即可得到准确的数字;
3.对运算后的数进行toFixed(),但是这种方法一样会丢失精度,不推荐使用;
4.纯手打,望采纳

查看完整回答
反对 回复 2019-03-27
  • 2 回答
  • 0 关注
  • 758 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号