首页 > 解决方案 > 无法用逗号和点格式化数字

问题描述

我想用逗号和点分隔数字,但我不能。

我曾尝试 toLocaleString 以我想要但失败的格式化顺序来实现我的数字。

这是我的代码。

var totalsum = 0;
jQuery('td.column-total').each(function() {
//var value = jQuery(this).text();
//if(!isNaN(jQuery(this)) && jQuery(this).length!=0) {
totalsum += parseFloat(jQuery(this).text().replace('₦', '').replace(',', '').replace('.', ''));

//} 
//totalsum += parseFloat(string);
/*  if (!isNaN(value)) {
totalsum += value;
}*/
});
//Total = (parseFloat(subtotal)+parseFloat(tax)).toFixed(1);
console.log(totalsum);
jQuery("#totalexprenses").html(totalsum.toLocaleString("en-NGN") );

我想要这种格式的号码 ₦25,300.00 但我收到的号码是这种格式的号码 13,580,000

标签: jquery

解决方案


您可以只使用语言环境en。如果您的号码在字符串中,您需要先将其转换为浮点数。如果您的号码是带有翻转分隔符的字符串,您必须先更正该格式。

例子:

// Nummber as Float
let num_1_float = 1234567.89;
let num_1_formated = num_1_float.toLocaleString('en');
console.log(num_1_formated);

// Number as String
let num_2_string = '1234567.89';
let num_2_formated = parseFloat(num_2_string).toLocaleString('en');
console.log(num_2_formated);

// Number as String with flipped seperators
let num_3_string = '1.234.567,89';
let num_3_formated = parseFloat(num_3_string.replace(/\./g, '').replace(',', '.')).toLocaleString('en');
console.log(num_3_formated);

在 jQuery 循环中使用each

let totalsum = 0;
jQuery('td.column-total').each(function() {
  let text = jQuery(this).text(); // get text from cell
  let num = parseFloat(text.replace(/\./g, '').replace(',', '.')); // convert localized-string to parseable string for parseFloat.
  totalsum += num; // add to sum
});
console.log(totalsum);
jQuery("#totalexprenses").html(totalsum.toLocaleString("en"));
#totalexprenses {
  border-top: 2px solid #000;
  color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<table>
  <tr><td class="column-total">12.000,11</td></tr>
  <tr><td class="column-total">23.350,00</td></tr>
  <tr><td class="column-total">12.250,50</td></tr>
  <tr><td class="column-total">5500,02</td></tr>
  <tr><td class="column-total">8.255,75</td></tr>
</table>
<div id="totalexprenses">0</div>


推荐阅读