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

JavaScript實現(xiàn)金額格式化(元轉(zhuǎn)成萬元)的示例代碼

 更新時間:2026年04月29日 08:44:19   作者:蠟臺  
這篇文章主要為大家詳細介紹了在JavaScript中將金額轉(zhuǎn)換為萬元單位的幾種方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

在JavaScript中,將金額轉(zhuǎn)換為以萬元(10,000元)為單位顯示,可以通過將金額除以10,000來實現(xiàn)。下面是一些示例代碼,展示如何完成這個轉(zhuǎn)換。

直接除法

function convertToTenThousand(amount) {
 return amount / 10000;
}

// 示例
const amount = 123456; // 金額,單位為元
const wan = convertToTenThousand(amount);
console.log(wan); // 輸出:12.3456

使用toFixed()方法格式化輸出 如果你希望輸出的結(jié)果保留特定的小數(shù)位數(shù)(例如兩位小數(shù)),可以使用toFixed()方法。

function convertToTenThousandWithFixed(amount) {
 return (amount / 10000).toFixed(2);
}

// 示例
const amount = 123456; // 金額,單位為元
const wan = convertToTenThousandWithFixed(amount);
console.log(wan); // 輸出:12.35

使用Number.prototype.toLocaleString()方法格式化輸出 如果你想要更符合人類閱讀習(xí)慣的數(shù)字格式(例如,使用逗號分隔千位),可以使用toLocaleString()方法。

function convertToTenThousandFormatted(amount) {
 const tenThousandAmount = amount / 10000;
 return tenThousandAmount.toLocaleString('zh-CN', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
}

// 示例
const amount = 123456; // 金額,單位為元
const wan = convertToTenThousandFormatted(amount);
console.log(wan); // 輸出:12.35(在某些地區(qū),可能會顯示為12,35)

使用Intl.NumberFormat進行國際化格式化 這是處理數(shù)字格式化的另一種現(xiàn)代方法,它提供了更好的國際化和本地化支持。

function convertToTenThousandIntl(amount) {
 const formatter = new Intl.NumberFormat('zh-CN', { style: 'currency', currency: 'CNY', minimumFractionDigits: 2, maximumFractionDigits: 2 });
 return formatter.format(amount / 10000);
}

// 示例
const amount = 123456; // 金額,單位為元
const wan = convertToTenThousandIntl(amount);
console.log(wan); // 輸出:¥12,345.60(具體格式可能根據(jù)瀏覽器的語言設(shè)置而有所不同)

注意:使用Intl.NumberFormat時,如果你想直接表示為“萬元”,可能需要自定義貨幣符號或者不使用貨幣格式,因為標準的貨幣格式通常不包括“萬元”的概念。如果要精確表示為“萬元”,可以這樣:

function convertToTenThousandCustom(amount) {
 const formatter = new Intl.NumberFormat('zh-CN', { style: 'decimal', minimumFractionDigits: 2, maximumFractionDigits: 2 });
 return formatter.format(amount / 10000) + '萬'; // 手動添加“萬”字
}

// 示例
const amount = 123456; // 金額,單位為元
const wan = convertToTenThousandCustom(amount);
console.log(wan); // 輸出:12.35萬(在某些地區(qū),可能會顯示為12,35萬)

這樣,你可以根據(jù)需要將金額轉(zhuǎn)換為以萬元為單位,并且可以根據(jù)需要格式化輸出。

附帶單位格式化金額方法

/**
 * 格式化金額
 * @param amount {string | number}
 * @return {{num: number, unit: string}}
 */
export function formatMoney(amount) {
  // 金額單位
  let units = ["元", "萬元", "億", "兆", '京', '垓', '杼']
  // 數(shù)字金額轉(zhuǎn)為字符串
  let strnum = amount.toString()
  // 聲明一個變量用于接收金額單位
  let unit = ''
  // 循環(huán)遍歷單位數(shù)組
  units.find((item, index) => {
    let newNum = ''
    // 判斷金額是否包含小數(shù)點
    if (strnum.indexOf('.') !== -1) {
      // 將小數(shù)點前的字符截取出來
      newNum = strnum.substring(0, strnum.indexOf('.'))
    } else {
      newNum = strnum
    }
    // 判斷小數(shù)點截取后的金額字符長度是否小于5
    if (newNum.length < 5) {
      // 小于5則接收當(dāng)前單位,并跳出迭代
      unit = item
      return true
    } else {
      // 不小于5則將經(jīng)過小數(shù)點截取處理過后的字符除以10000后作為下一輪迭代的初始金額重新判斷(每一個單位之間相距4位數(shù),故除以10000)
      strnum = (newNum * 1 / 10000).toString()
    }
  })
  let money = {num: 0, unit: ""}
  // 保留2位小數(shù)
  money.num = (strnum * 1).toFixed(2)
  // 接收單位
  money.unit = unit
  return money;
}

方法補充

在 JavaScript 中,將金額從“元”轉(zhuǎn)換為“萬元”,同時保留適當(dāng)?shù)木炔⑻砑忧Х治环指舴?,是一個常見的需求。下面給出一個通用且健壯的實現(xiàn)。

基礎(chǔ)版:元轉(zhuǎn)萬元,保留兩位小數(shù)

function yuanToWan(amount) {
  if (isNaN(amount)) return '0.00';
  const wan = amount / 10000;
  return wan.toFixed(2);
}

用法:

yuanToWan(123456);      // "12.35"
yuanToWan(10000);       // "1.00"
yuanToWan(9999);        // "0.9999" -&gt; toFixed(2) =&gt; "1.00"? 實際是 "1.00"(因為四舍五入)

進階版:保留小數(shù)位、千位分隔符、負數(shù)處理

/**
 * 將金額(元)格式化為萬元,支持千分位分隔符、自定義小數(shù)位數(shù)、負數(shù)處理
 * @param {number|string} amount 金額(元)
 * @param {number} digits 保留的小數(shù)位數(shù),默認2
 * @param {boolean} useSeparator 是否添加千分位分隔符,默認false
 * @returns {string} 格式化后的字符串
 */
function yuanToWanFormat(amount, digits = 2, useSeparator = false) {
  let num = parseFloat(amount);
  if (isNaN(num)) return '0.00';

  // 轉(zhuǎn)換為萬元
  let wan = num / 10000;
  
  // 處理精度(四舍五入)
  const factor = Math.pow(10, digits);
  wan = Math.round(wan * factor) / factor;

  // 分割整數(shù)部分和小數(shù)部分
  let [integerPart, decimalPart] = wan.toFixed(digits).split('.');
  
  // 添加千分位分隔符
  if (useSeparator) {
    integerPart = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
  }
  
  // 組合結(jié)果
  return decimalPart !== undefined ? `${integerPart}.${decimalPart}` : integerPart;
}

使用示例

console.log(yuanToWanFormat(123456.78, 2, true));   // "12.35" -&gt; 千分位無效果,因為整數(shù)部分不足4位
console.log(yuanToWanFormat(12345678, 2, true));    // "1,234.57"
console.log(yuanToWanFormat(5000, 1, false));       // "0.5"
console.log(yuanToWanFormat(-123456, 2, true));     // "-12.35"
console.log(yuanToWanFormat('abc', 2));             // "0.00"

完整版:支持自定義單位(萬能工具)

有時不僅要萬元,可能還要百萬元、億元,我們可以實現(xiàn)一個通用函數(shù):

/**
 * 金額單位轉(zhuǎn)換(元 → 目標單位)
 * @param {number} amount 元
 * @param {number} unitRatio 目標單位對應(yīng)的元數(shù),如萬元=10000,億元=100000000
 * @param {object} options 格式化選項
 * @returns {string}
 */
function formatAmount(amount, unitRatio = 10000, options = {}) {
  const {
    digits = 2,
    useSeparator = true,
    suffix = '萬'   // 單位后綴
  } = options;
  let num = parseFloat(amount);
  if (isNaN(num)) return '0' + suffix;
  let val = num / unitRatio;
  // 四舍五入
  val = Math.round(val * Math.pow(10, digits)) / Math.pow(10, digits);
  let [intPart, decPart] = val.toFixed(digits).split('.');
  if (useSeparator) {
    intPart = intPart.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
  }
  const result = decPart ? `${intPart}.${decPart}` : intPart;
  return `${result}${suffix}`;
}
console.log(formatAmount(12345678, 10000, { suffix: '萬', useSeparator: true })); // "1,234.57萬"
console.log(formatAmount(12345678, 100000000, { suffix: '億', digits: 2 }));     // "0.12億"

注意事項

  • 浮點精度問題:JavaScript 的浮點數(shù)計算可能產(chǎn)生極小誤差,例如 123456 / 10000 可能是 12.345600000000001,使用 toFixed 或 Math.round 即可消除。
  • 千分位分割:正則 /\B(?=(\d{3})+(?!\d))/g 僅在整數(shù)部分長度大于3時生效,對負數(shù)同樣有效。
  • 負數(shù)處理:上述方法均正確處理負號,因為 toFixed 對負數(shù)同樣適用。

到此這篇關(guān)于JavaScript實現(xiàn)金額格式化(元轉(zhuǎn)成萬元)的示例代碼的文章就介紹到這了,更多相關(guān)JavaScript金額格式化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

陆川县| 思茅市| 铜川市| 信阳市| 临安市| 马公市| 八宿县| 咸宁市| 柞水县| 丹巴县| 乡宁县| 莱州市| 山西省| 东兰县| 河间市| 浦东新区| 屏东县| 南丹县| 堆龙德庆县| 菏泽市| 射洪县| 怀仁县| 满洲里市| 夏津县| 祁东县| 云梦县| 云浮市| 株洲市| 桂东县| 泸溪县| 黄冈市| 偃师市| 福建省| 张北县| 阿图什市| 泰兴市| 淳安县| 襄垣县| 旅游| 丁青县| 株洲县|