亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 698 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號