解決js浮點(diǎn)數(shù)精度丟失:number-precision/bignumber.js

一、js浮點(diǎn)數(shù)精度丟失
 0.1 + 0.2 === 0.30000000000000004
 2.3 + 2.4 === 4.699999999999999
 1 - 0.9 === 0.09999999999999998
 3 * 0.3 === 0.8999999999999999
 0.362 * 100 === 36.199999999999996
 1.21 / 1.1 === 1.0999999999999999
 0.105.toFixed(2) === '0.10' // true娩践,toFixed四舍五入的效果在此例上沒有體現(xiàn)
二三妈、使用number-precision解決
1、安裝
 npm install number-precision --save
2辱魁、引入
import NP from 'number-precision'
3烟瞧、使用
  • console.log(NP.plus(0.1, 0.2)) // 0.3
    console.log(NP.plus(2.3, 2.4)) // 4.7
    
  •    console.log(NP.minus(1, 0.9)) // 0.1
    
  •  console.log(NP.times(3, 0.3)) // 0.9
     console.log(NP.times(0.362, 100)) // 36.2
    
  •  console.log(NP.divide(1.21, 1.1)) // 1.1
    

保留幾位小數(shù)點(diǎn),實(shí)現(xiàn)了toFixed在此場景下四舍五入的功能

   console.log(NP.round(0.105, 2)) // 0.11
三染簇、使用bignumber.js解決
1参滴、安裝
  npm install bignumber.js --save
2、引入
 import BigNumber from 'bignumber.js'
3锻弓、使用

 const a = new BigNumber(0.1)
 console.log(a.plus(0.2).toString()) // 0.3

 const a = new BigNumber(1)
 console.log(a.minus(0.9).toString()) // 0.1

const a = new BigNumber(3)
console.log(a.times(0.3).toString()) // 0.9

const a = new BigNumber(1.21)
console.log(a.div(1.1).toString()) // 1.1

取余

const a = new BigNumber(10)
console.log(a.mod(4).toString()) // 2

比較大小

const a = new BigNumber(10)
console.log(a.eq(10)) // true 是否相等
console.log(a.gt(9)) // true a是否大于9
console.log(a.gte(9)) // true a是否大于等于9
console.log(a.lt(9)) // false a是否小于9
console.log(a.lte(9)) // false a是否小于等于9
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末砾赔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子青灼,更是在濱河造成了極大的恐慌暴心,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件杂拨,死亡現(xiàn)場離奇詭異酷勺,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)扳躬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門脆诉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來甚亭,“玉大人,你說我怎么就攤上這事击胜】髡” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵偶摔,是天一觀的道長暇唾。 經(jīng)常有香客問我,道長辰斋,這世上最難降的妖魔是什么策州? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮宫仗,結(jié)果婚禮上够挂,老公的妹妹穿的比我還像新娘。我一直安慰自己藕夫,他們只是感情好孽糖,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著毅贮,像睡著了一般办悟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上滩褥,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天病蛉,我揣著相機(jī)與錄音,去河邊找鬼瑰煎。 笑死铺然,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的丢间。 我是一名探鬼主播探熔,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼驹针,長吁一口氣:“原來是場噩夢啊……” “哼烘挫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起柬甥,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤饮六,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后苛蒲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體卤橄,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年臂外,在試婚紗的時候發(fā)現(xiàn)自己被綠了窟扑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片喇颁。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖嚎货,靈堂內(nèi)的尸體忽然破棺而出橘霎,到底是詐尸還是另有隱情,我是刑警寧澤殖属,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布姐叁,位于F島的核電站,受9級特大地震影響洗显,放射性物質(zhì)發(fā)生泄漏外潜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一挠唆、第九天 我趴在偏房一處隱蔽的房頂上張望处窥。 院中可真熱鬧,春花似錦损搬、人聲如沸碧库。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嵌灰。三九已至,卻和暖如春颅悉,著一層夾襖步出監(jiān)牢的瞬間沽瞭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工剩瓶, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留驹溃,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓延曙,卻偏偏與公主長得像豌鹤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子枝缔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容