使用JavaScript或ExtJS四舍五入格式化的字符串编号

Rounding off a formatted string number using JavaScript or ExtJS

本文关键字:字符串 编号 格式化 四舍五入 JavaScript ExtJS 使用      更新时间:2023-09-26

下面,我有一个数字,我正在尝试使用javascript进行格式化。但它返回NaN。

var v = "153,452.47";
alert(Math.round(v));

您可以使用以下小提琴:示例

如何格式化带有分隔符的数字字符串?

我认为这将很好地工作

var v = "153,452.47";
var float = parseFloat(v.replace(/[^0-9.]/g, ''));
// => 153452.47

如果你想四舍五入到整数

var v = "153,452.47";
float.toFixed(0);
// => 153452

让我们做一个漂亮的小功能!

var roundFormattedNumber = function(n){
  var result = parseFloat(n.replace(/[^0-9.]/g, ''));
  return isNaN(result) ? NaN : result.toFixed(0);
};

这比提供的其他解决方案更有效,因为它是白名单regexp替换,而不是黑名单替换。这意味着它甚至适用于像$ 1,234.56 这样的数字

提供的其他解决方案将不适用于这些数字

roundFormattedNumber("$ 123,456,489.00");
//=> 123456789
roundFormattedNumber("999.99 USD");
//=> 1000
roundFormattedNumber("1 000 €");
//=> 1000
roundFormattedNumber("i like bears");
//=> NaN

您必须删除逗号。

parseFloat("153,452.57".replace(/,/g,"")).toFixed(0);

如果你想要2位小数:

parseFloat("153,452.57".replace(/,/g,"")).toFixed(2);

试试这个

var v = "153,452.47";
Math.round(parseFloat(v.replace(",","")));