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

JavaScript 格式化金額常見方法

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

JavaScript 格式化金額

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

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

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)換為本地化的字符串表示形式,并可以指定貨幣符號(hào)、小數(shù)點(diǎn)和千位分隔符等格式。

代碼如下:

美元

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);

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

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

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

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

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

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

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ù)時(shí)4舍5入,負(fù)數(shù)時(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'

二.使用正則表達(dá)式格式化

 ①整數(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ù)時(shí)4舍5入,負(fù)數(shù)時(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

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

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

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

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

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

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

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

    TypeScript中class類型實(shí)例講解

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

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

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

    基于javascript實(shí)現(xiàn)listbox左右移動(dòng)

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

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

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

    24個(gè)實(shí)用JavaScript?開發(fā)技巧

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

    javascript動(dòng)態(tài)加載三

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

最新評(píng)論

徐州市| 翁源县| 克拉玛依市| 富锦市| 沁阳市| 神木县| 明溪县| 砚山县| 盘山县| 北海市| 深泽县| 乌拉特后旗| 开平市| 蛟河市| 武乡县| 托克逊县| 嘉定区| 全椒县| 栾川县| 荥经县| 宜黄县| 邯郸县| 洪雅县| 滨海县| 额尔古纳市| 车致| 鲁甸县| 涿州市| 铅山县| 增城市| 孝昌县| 阿坝| 车险| 云霄县| 稻城县| 沭阳县| 淮北市| 怀宁县| 临夏市| 张掖市| 措勤县|