格式化 Angular.js 中的数字
Formatting numbers in Angular.js
我在 Angular.js 中有一个变量,我应该这样填写:
values.push({x: '' + d.x + 'h', y: d.y / 100})
d.x 和 d.y 是我应该在 ndv3 中显示的数字 multiBarChart.But 我应该格式化数字,就好像我有 2500,我得到 2 500.How 可以我做吗?
这是一个小的 Javascript 函数,它解析提供的数字并将其格式化为所需的输出:
function formatNumber(str) {
var parts = (str + "").split("."),
main = parts[0],
len = main.length,
output = "",
i = len - 1;
while(i >= 0) {
output = main.charAt(i) + output;
if ((len - i) % 3 === 0 && i > 0) {
output = " " + output;
}
--i;
}
// put decimal part back
if (parts.length > 1) {
output += "." + parts[1];
}
return output;
}
使用提供的号码调用此函数:
formatNumber(4876931.19) // output will be: 4 876 931.19
function formatNumber(str) {
var parts = (str + "").split("."),
main = parts[0],
len = main.length,
output = "",
i = len - 1;
while(i >= 0) {
output = main.charAt(i) + output;
if ((len - i) % 3 === 0 && i > 0) {
output = " " + output;
}
--i;
}
// put decimal part back
if (parts.length > 1) {
output += "." + parts[1];
}
return output;
}
console.log(formatNumber(4876931.19))
我写了 Angularjs 个过滤器示例。jsfiddle
HTML 文件
<div>
<label >{{"4876931.19" | numberFilter}}</label>
</div>
App Js
angular.module('myApp', ['filters']);
过滤js
angular.module('filters', []).filter('numberFilter', [function () {
return function (number) {
if (!angular.isUndefined(number)) {
var parts = number.split(".");
var str = parts[0].toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, " ");
if(parts[1] !== undefined){
str+="."+parts[1];
}
return str;
}
};
}]);
更新代码
我在 Angular.js 中有一个变量,我应该这样填写:
values.push({x: '' + d.x + 'h', y: d.y / 100})
d.x 和 d.y 是我应该在 ndv3 中显示的数字 multiBarChart.But 我应该格式化数字,就好像我有 2500,我得到 2 500.How 可以我做吗?
这是一个小的 Javascript 函数,它解析提供的数字并将其格式化为所需的输出:
function formatNumber(str) {
var parts = (str + "").split("."),
main = parts[0],
len = main.length,
output = "",
i = len - 1;
while(i >= 0) {
output = main.charAt(i) + output;
if ((len - i) % 3 === 0 && i > 0) {
output = " " + output;
}
--i;
}
// put decimal part back
if (parts.length > 1) {
output += "." + parts[1];
}
return output;
}
使用提供的号码调用此函数:
formatNumber(4876931.19) // output will be: 4 876 931.19
function formatNumber(str) {
var parts = (str + "").split("."),
main = parts[0],
len = main.length,
output = "",
i = len - 1;
while(i >= 0) {
output = main.charAt(i) + output;
if ((len - i) % 3 === 0 && i > 0) {
output = " " + output;
}
--i;
}
// put decimal part back
if (parts.length > 1) {
output += "." + parts[1];
}
return output;
}
console.log(formatNumber(4876931.19))
我写了 Angularjs 个过滤器示例。jsfiddle
HTML 文件
<div>
<label >{{"4876931.19" | numberFilter}}</label>
</div>
App Js
angular.module('myApp', ['filters']);
过滤js
angular.module('filters', []).filter('numberFilter', [function () {
return function (number) {
if (!angular.isUndefined(number)) {
var parts = number.split(".");
var str = parts[0].toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, " ");
if(parts[1] !== undefined){
str+="."+parts[1];
}
return str;
}
};
}]);
更新代码