欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript中保留小數(shù)點(diǎn)后N位方法總結(jié)

 更新時(shí)間:2023年06月01日 11:59:46   作者:時(shí)傾  
這篇文章主要為大家詳細(xì)介紹了JavaScript中保留小數(shù)點(diǎn)后N位的幾個(gè)常用方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下

四舍五入保留小數(shù)后 n 位

補(bǔ)0: 使用 toFixed(digits) 方法

  • 四舍五入為指定的小數(shù)位數(shù)
  • 返回字符串
  • 小數(shù)實(shí)際位數(shù)不夠指定的位數(shù),不足的部分會(huì)補(bǔ) 0
(1).toFixed(2) // '1.00'
(1.2).toFixed(2) // '1.20'
(-2).toFixed(2) // '-2.00'
(1.12345678).toFixed(7) // '1.1234568'

劣勢(shì)

  • 參數(shù)必須是 0 ~ 20 之間的值,包括 0 和 20。參數(shù) < 0 報(bào)錯(cuò)。
  • 會(huì)出現(xiàn)數(shù)字精度問題。詳見ECMAScript 中的 toFixed 定義。
(1111111111.1234567891234).toFixed(8) // '1111111111.12345672'

不補(bǔ)0:自定義轉(zhuǎn)換方法

  • 四舍五入為指定的小數(shù)位數(shù)
  • 返回?cái)?shù)字
  • 小數(shù)實(shí)際位數(shù)不夠指定的位數(shù),不足的部分不會(huì)補(bǔ) 0
function roundFun(number, precision) {
  return Math.round(+number + 'e' + precision) / Math.pow(10, precision);
}
// 或
function roundFun(number, precision) {
  return Math.round(number * Math.pow(10, precision)) / Math.pow(10, precision);
}
roundFun(1, 2) // 1
roundFun(1.2, 2) // 1.2
roundFun(-2, 2) // -2
roundFun(1.12345678, 7) // 1.1234568
roundFun(1111111111.1234567891234, 8) // 1111111111.1234567

精確顯示小數(shù)后 n 位

不補(bǔ)0

  • 精確保留小數(shù)后 n 位
  • 返回?cái)?shù)字
  • 小數(shù)實(shí)際位數(shù)不夠指定的位數(shù),不足的部分不會(huì)補(bǔ) 0
const keepDecimal = (numStr, precision) => {
  const regexp = new RegExp(`^\\d+(?:\\.\\d{0,${precision}})?`)
  const result = numStr.match(regexp)
  return result ? result[0] : '0'
}
keepDecimal('1', 2) // '1'
keepDecimal('1.2', 2) // '1.2'
keepDecimal('1.12345678', 7) // '1.1234567'
keepDecimal('12345.1234567891234', 8) // '12345.12345678'
keepDecimal('123456789.1234567891234', 10) // '123456789.1234567891'

劣勢(shì)

  • 不支持負(fù)數(shù)
  • 不支持字符串
keepDecimal('-2', 2) // '0'
keepDecimal('122sss', 10) // '122'
keepDecimal('abcd', 10) // '0'

補(bǔ)0

  • 精確保留小數(shù)后 n 位
  • 返回字符串
  • 小數(shù)實(shí)際位數(shù)不夠指定的位數(shù),不足的部分會(huì)補(bǔ) 0
const keepDecimal = (numStr, precision) => {
  const regexp = new RegExp(`^\\d+(?:\\.\\d{0,${precision}})?`)
  const result = numStr.match(regexp)
  return result ? result[0] : '0'
}

const keepDecimalPlaces = (numStr, precision) => {
  let numberStr = keepDecimal(numStr, precision)
  let rs = numberStr.indexOf('.')
  if (rs < 0 && precision > 0) {
    rs = numberStr.length
    numberStr += '.'
  }
  while (numberStr.length <= rs + precision) {
    numberStr += '0'
  }
  return numberStr
}
keepDecimalPlaces('1', 2) // '1.00'
keepDecimalPlaces('1.2', 2) // '1.20'
keepDecimalPlaces('1.12345678', 7) // '1.1234567'
keepDecimalPlaces('12345.1234567891234', 8) // '12345.12345678'
keepDecimalPlaces('123456789.1234567891234', 10) // '123456789.1234567891'
keepDecimalPlaces('123456789.000001', 10) // '123456789.0000010000'

劣勢(shì)

  • 不支持負(fù)數(shù)
  • 不支持字符串
keepDecimalPlaces('-2', 2) // '0.00'
keepDecimalPlaces('122sss', 10) // '122.0000000000'
keepDecimalPlaces('abcd', 10) // '0.0000000000'

 到此這篇關(guān)于JavaScript中保留小數(shù)點(diǎn)后N位方法總結(jié)的文章就介紹到這了,更多相關(guān)JavaScript保留小數(shù)點(diǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 微信小程序登錄按鈕遮罩浮層效果的實(shí)現(xiàn)方法

    微信小程序登錄按鈕遮罩浮層效果的實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于微信小程序登錄按鈕遮罩浮層效果的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • js實(shí)現(xiàn)按鈕進(jìn)行某行上移下移

    js實(shí)現(xiàn)按鈕進(jìn)行某行上移下移

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)按鈕進(jìn)行某行上移下移,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Js判斷參數(shù)(String,Array,Object)是否為undefined或者值為空

    Js判斷參數(shù)(String,Array,Object)是否為undefined或者值為空

    在一些前端控件要提交數(shù)據(jù)到服務(wù)器端的數(shù)據(jù)驗(yàn)證過程中,需要判斷提交的數(shù)據(jù)是否為空。如果是普通表單的字符串?dāng)?shù)據(jù),只需要在 trim 后判斷 length 即可,而這里需要的數(shù)據(jù)可以是各種不同的類型,通過 JSON.stringify(data) 進(jìn)行序列化后再傳遞
    2013-11-11
  • JavaScript使用閉包模仿塊級(jí)作用域操作示例

    JavaScript使用閉包模仿塊級(jí)作用域操作示例

    這篇文章主要介紹了JavaScript使用閉包模仿塊級(jí)作用域操作,結(jié)合實(shí)例形式分析了javascript閉包的原理及模仿塊級(jí)作用域相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01
  • Google Map API更新實(shí)現(xiàn)用戶自定義標(biāo)注坐標(biāo)

    Google Map API更新實(shí)現(xiàn)用戶自定義標(biāo)注坐標(biāo)

    由于工作需要,又要開始看Google Map API 代碼,今天再把我之前的GoogleMap類,又更新了下,加了個(gè)簡(jiǎn)單的用戶自定義標(biāo)注坐標(biāo)的功能。看看吧(代碼沒怎么優(yōu)化,別見笑)
    2009-07-07
  • JavaScript使用html2canvas實(shí)現(xiàn)截取HTML并生成圖片

    JavaScript使用html2canvas實(shí)現(xiàn)截取HTML并生成圖片

    在前端開發(fā)中,有時(shí)我們需要將網(wǎng)頁的一部分或整個(gè)頁面截取并保存為圖片,這在生成報(bào)告、分享內(nèi)容或保存用戶界面狀態(tài)等場(chǎng)景中非常有用,本文將介紹如何使用 JavaScript 庫 html2canvas 來實(shí)現(xiàn)這一功能,并提供一個(gè)完整的示例,需要的朋友可以參考下
    2024-10-10
  • 超實(shí)用的全新JavaScript事件Scrollend實(shí)例詳解

    超實(shí)用的全新JavaScript事件Scrollend實(shí)例詳解

    這篇文章主要為大家介紹了超實(shí)用的全新JavaScript事件Scrollend實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • JavaScript實(shí)現(xiàn)加載導(dǎo)出CZML文件詳解

    JavaScript實(shí)現(xiàn)加載導(dǎo)出CZML文件詳解

    CZML是一種基于?JSON?的文件格式,用于描述地理空間數(shù)據(jù)和時(shí)間動(dòng)態(tài)場(chǎng)景,這篇文章為大家詳細(xì)介紹了如何使用JavaScript實(shí)現(xiàn)CZML文件的加載與導(dǎo)出,需要的可以了解下
    2025-02-02
  • js+css3制作時(shí)鐘特效

    js+css3制作時(shí)鐘特效

    本文給大家匯總了2個(gè)JavaScript+css3實(shí)現(xiàn)的時(shí)鐘特效的代碼,非常的漂亮,有需要的小伙伴可以來參考下
    2016-10-10
  • 用最通俗易懂的代碼幫助新手理解javascript閉包 推薦

    用最通俗易懂的代碼幫助新手理解javascript閉包 推薦

    我同樣也是個(gè)javascript新手,怎么說呢,先學(xué)的jquery,精通之后發(fā)現(xiàn)了javascript的重要性,再回過頭來學(xué)javascript面向?qū)ο缶幊?/div> 2012-03-03

最新評(píng)論