“大家好!我对如何格式化一些数字有疑问。例如,我希望将数字33304转换为333,04,将数字108100转换为1081,00。规则是在后保留两位小数逗号分隔符。我尝试使用javascript格式函数,但找不到正确的解决方案。 您能帮我个忙吗?
答案 0 :(得分:3)
仅使用JavaScript或TypeScript,您可以编写:
function format(n) {
(n / 100).toFixed(2).replace('.', ',');
}
示例:
num(33304) === '333,04';
num(108100) === '1081,00';
num(101) === '1,01';
num(50) === '0,50';
num(1) === '0,01';
num(0) === '0,00';
答案 1 :(得分:0)
您可以使用数字格式设置方法:
function formatNumber(num) {
return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,')
}
console.info(formatNumber(2665)) // 2,665
console.info(formatNumber(102665)) // 102,665
console.info(formatNumber(111102665)) // 111,102,665
来源:
https://blog.abelotech.com/posts/number-currency-formatting-javascript/
或
使用以下内容:
var str="33304";
var resStr=str.substring(0,str.length-2)+","+str.substring(str.length-2);
console.log(resStr);
答案 2 :(得分:0)
使用自定义管道可以实现此转换。参见下面的示例:-
//Component
import {Component} from '@angular/core';
@Component({
'selector' : 'app-sample' ,
template : ' <p> Number {{sampleValue | convertPipe}} '
})
export class SampleComponent{
public sampleValue = 33300;
}
// custom Pipe
import {Pipe} from '@angular/core';
@Pipe(
{name: 'convertPipe'}
)
export class ConvertPipe{
transform(value: number){
let temp1 , temp2 , returnValue;
temp1 = value/100;
temp2 = value%100;
if(temp2 != 0){
returnValue = temp1 + ',' +temp2;
} else{
returnValue = temp1 + ',00';
}
return returnValue;
}
}
希望这会有所帮助。