最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript 格式化金額常見方法

 更新時間:2023年05月29日 09:47:17   作者:飛仔FeiZai  
這篇文章主要介紹了JavaScript 格式化金額最常見方法,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

JavaScript 格式化金額

一、使用 Intl.NumberFormat 構(gòu)造函數(shù)

這是 JavaScript 中格式化金額的最常見方法。Intl.NumberFormat()構(gòu)造函數(shù)接受兩個參數(shù):語言環(huán)境和選項。語言環(huán)境是為其格式化金額的語言和地區(qū)。選項是一組控制金額格式的屬性。例如,可以使用樣式屬性來指定貨幣的格式,使用貨幣屬性來指定要將金額格式化為的貨幣。

const amount = 1234567.89;
const locale = "en-US";
const options = {
  style: "currency",
  currency: "USD",
};
const formattedAmount = new Intl.NumberFormat(locale, options).format(amount);
console.log(formattedAmount); //$1,234,567.89

二、使用 Number.prototype.toLocaleString 方法

要格式化金額,可以使用 JavaScript 的 toLocaleString() 方法。該方法可以將數(shù)字轉(zhuǎn)換為本地化的字符串表示形式,并可以指定貨幣符號、小數(shù)點和千位分隔符等格式。

代碼如下:

美元

const amount = 1234567.89;
const formattedAmount = amount.toLocaleString("en-US", {
  style: "currency",
  currency: "USD",
  minimumFractionDigits: 2,
  maximumFractionDigits: 2,
});
console.log(formattedAmount); //$1,234,567.89

人民幣

const amount = 1234567.89;
const formattedAmount = amount.toLocaleString("zh-CN", {
  style: "currency",
  currency: "CNY",
  minimumFractionDigits: 2,
  maximumFractionDigits: 2,
});
console.log(formattedAmount);

在這個示例中,將數(shù)字變量 amount 使用 toLocaleString() 方法轉(zhuǎn)換為本地化的字符串表示形式,并指定了以下格式:

  • style: 'currency' 表示使用貨幣格式顯示金額。
  • currency: 'USD' 表示使用美元符號作為貨幣符號。
  • minimumFractionDigits: 2 表示最少保留兩位小數(shù)。
  • maximumFractionDigits: 2 表示最多保留兩位小數(shù)。

通過這種方式,可以使用 JavaScript 快速簡單地實現(xiàn)金額格式化效果。需要注意的是,toLocaleString() 方法在不同的瀏覽器和操作系統(tǒng)中可能存在差異,需要進行兼容性測試和兼容性處理。

三、 使用模板字符串 + Number.prototype.toFixed + 正則替換

const amount = 1234567.89;
const formattedAmount = `¥${amount
  .toFixed(2)
  .replace(/\B(?=(\d{3})+(?!\d))/g, ",")}`;
console.log(formattedAmount);

在這個示例中,通過 toFixed 使金額保留兩位小數(shù),使用正則替換的方式增加千位分隔符,再使用模板字符串進行拼接。

js金額數(shù)字格式化

一.使用字符串操作方法格式化

①整數(shù)金額格式化:

function moneyFormat (num) {
      const len = num.length
      return len <= 3 ? num : this.moneyFormat(num.substr(0, len - 3)) + ',' + num.substr(len - 3, 3)
}
var num = 12345000
var res = moneyFormat(String(num))
console.log('result:', res) // '12,345,000'

②自定義保留decimal位小數(shù),并使用split分隔符的數(shù)字格式化:

function moneyFormat (num, decimal = 2, split = ',') {
  /*
    parameter:
    num:格式化目標(biāo)數(shù)字
    decimal:保留幾位小數(shù),默認(rèn)2位
    split:千分位分隔符,默認(rèn)為,
    moneyFormat(123456789.87654321, 2, ',') // 123,456,789.88
  */
  function thousandFormat (num) {
    const len = num.length
    return len <= 3 ? num : thousandFormat(num.substr(0, len - 3)) + split + num.substr(len - 3, 3)
  }
  if (isFinite(num)) { // num是數(shù)字
    if (num === 0) { // 為0
      return num.toFixed(decimal)
    } else { // 非0
      var res = ''
      var dotIndex = String(num).indexOf('.')
      if (dotIndex === -1) { // 整數(shù)
        res = thousandFormat(String(num)) + '.' + '0'.repeat(decimal)
      } else { // 非整數(shù)
        // js四舍五入 Math.round():正數(shù)時4舍5入,負(fù)數(shù)時5舍6入
        // Math.round(1.5) = 2
        // Math.round(-1.5) = -1
        // Math.round(-1.6) = -2
        // 保留decimals位小數(shù)
        const numStr = String((Math.round(num * Math.pow(10, decimal)) / Math.pow(10, decimal)).toFixed(decimal)) // 四舍五入,然后固定保留2位小數(shù)
        const decimals = numStr.slice(dotIndex, dotIndex + decimal + 1) // 截取小數(shù)位
        res = thousandFormat(numStr.slice(0, dotIndex)) + decimals
      }
      return res
    }
  } else {
    return '--'
  }
}
console.log('result:', moneyFormat(123456789.87654321)) // '123,456,789.88'

二.使用正則表達式格式化

 ①整數(shù)金額格式化:

function moneyFormat (num) {
      return String(num).replace(/(\d)(?=(?:\d{3})+$)/g, '$1,')
}
var num = 12345000
var res = moneyFormat(num)
console.log('result:', res) // '12,345,000'

②自定義保留decimal位小數(shù),并使用split分隔符的數(shù)字格式化:

function moneyFormat (num, decimal = 2, split = ',') {
  /*
    parameter:
    num:格式化目標(biāo)數(shù)字
    decimal:保留幾位小數(shù),默認(rèn)2位
    split:千分位分隔符,默認(rèn)為,
    moneyFormat(123456789.87654321, 2, ',') // 123,456,789.88
  */
  if (isFinite(num)) { // num是數(shù)字
    if (num === 0) { // 為0
      return num.toFixed(decimal)
    } else { // 非0
      var res = ''
      var dotIndex = String(num).indexOf('.')
      if (dotIndex === -1) { // 整數(shù)
        res = String(num).replace(/(\d)(?=(?:\d{3})+$)/g, `$1${split}`) + '.' + '0'.repeat(decimal)
      } else { // 非整數(shù)
        // js四舍五入 Math.round():正數(shù)時4舍5入,負(fù)數(shù)時5舍6入
        // Math.round(1.5) = 2
        // Math.round(-1.5) = -1
        // Math.round(-1.6) = -2
        // 保留decimals位小數(shù)
        const numStr = String((Math.round(num * Math.pow(10, decimal)) / Math.pow(10, decimal)).toFixed(decimal)) // 四舍五入,然后固定保留2位小數(shù)
        const decimals = numStr.slice(dotIndex, dotIndex + decimal + 1) // 截取小數(shù)位
        res = String(numStr.slice(0, dotIndex)).replace(/(\d)(?=(?:\d{3})+$)/g, `$1${split}`) + decimals
      }
      return res
    }
  } else {
    return '--'
  }
}
console.log('result:', moneyFormat(123456789.87654321)) // '123,456,789.88'

到此這篇關(guān)于JavaScript 格式化金額的文章就介紹到這了,更多相關(guān)js格式化金額內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • js遍歷數(shù)組及獲取數(shù)組對象的key和key的值實現(xiàn)方式

    js遍歷數(shù)組及獲取數(shù)組對象的key和key的值實現(xiàn)方式

    這篇文章主要介紹了js遍歷數(shù)組及獲取數(shù)組對象的key和key的值實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2026-03-03
  • 微信小程序使用前置攝像頭拍照

    微信小程序使用前置攝像頭拍照

    這篇文章主要為大家詳細(xì)介紹了微信小程序使用前置攝像頭拍照,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • javascript點擊按鈕實現(xiàn)隱藏顯示切換效果

    javascript點擊按鈕實現(xiàn)隱藏顯示切換效果

    這篇文章主要介紹了javascript點擊按鈕實現(xiàn)隱藏顯示切換效果,以一個完整的實例為大家分析了js點擊按鈕實現(xiàn)隱藏顯示切換的功能,感興趣的小伙伴們可以參考一下
    2016-02-02
  • js實現(xiàn)文本框中輸入文字頁面中div層同步獲取文本框內(nèi)容的方法

    js實現(xiàn)文本框中輸入文字頁面中div層同步獲取文本框內(nèi)容的方法

    這篇文章主要介紹了js實現(xiàn)文本框中輸入文字頁面中div層同步獲取文本框內(nèi)容的方法,實例分析了javascript操作dom元素的技巧,需要的朋友可以參考下
    2015-03-03
  • TypeScript中class類型實例講解

    TypeScript中class類型實例講解

    眾所周知在TypeScript中定義變量需要指定標(biāo)識符的類型,下面這篇文章主要給大家介紹了關(guān)于TypeScript中class類型的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • JavaScript中的Proxy代理的用法和功能詳解

    JavaScript中的Proxy代理的用法和功能詳解

    Proxy代理是JavaScript中一項強大而靈活的功能,它可以用于攔截、修改和自定義對象的底層操作,這篇文章主要介紹了JavaScript中的Proxy代理的各種用法和功能,需要的朋友可以參考下
    2023-06-06
  • 基于javascript實現(xiàn)listbox左右移動

    基于javascript實現(xiàn)listbox左右移動

    這篇文章主要介紹了基于javascript實現(xiàn)listbox左右移動的相關(guān)資料,以一個完整的實例代碼分析了js實現(xiàn)listbox左右移動的相關(guān)技巧,感興趣的小伙伴們可以參考一下
    2016-01-01
  • JavaScript實現(xiàn)換膚功能

    JavaScript實現(xiàn)換膚功能

    js換膚功能的實現(xiàn)原理非常簡單,就是使用js切換對應(yīng)的css樣式表文件,本文重點給大家介紹JavaScript實現(xiàn)換膚功能,感興趣的朋友參考下吧
    2017-09-09
  • 24個實用JavaScript?開發(fā)技巧

    24個實用JavaScript?開發(fā)技巧

    這篇文章主要給大家分享了24個實用JavaScript?的開發(fā)技巧,文章圍繞JavaScript?的開發(fā)技巧講解展開全文,具有一定的參考價值,需要的朋友可以參考一下,希望對你有所幫助
    2021-12-12
  • javascript動態(tài)加載三

    javascript動態(tài)加載三

    首先是通過同步策略來實現(xiàn)模塊加載與回調(diào)函數(shù)之間進行分離,接著是通過異步策略來實現(xiàn)模塊加載與回調(diào)函數(shù)之間進行分離
    2012-08-08

最新評論

江川县| 洛南县| 福安市| 乐昌市| 内江市| 长泰县| 从化市| 正阳县| 淄博市| 保靖县| 茂名市| 探索| 扎囊县| 梅州市| 绍兴市| 洪湖市| 翁源县| 五常市| 红桥区| 五指山市| 青神县| 澄迈县| 巴林右旗| 庆阳市| 合作市| 盐山县| 泾川县| 屏边| 高密市| 台东县| 桐城市| 广安市| 永福县| 墨江| 临江市| 浮梁县| 双江| 方正县| 广丰县| 枞阳县| 洮南市|