我需要为正在工作的项目格式化一个数字,唯一的问题是我无法按照我想要的格式化它。
我使用login.component.ts
方法将数字转换为localestring,它给了我逗号,但我也需要小数位,我似乎没什么用。
import loginComponentTemplateUrl from './url'
@Component({
templateUrl: loginComponentTemplateUrl
})
...
上面的代码只返回parsefloated数字和tofixed十进制值,但它不会添加逗号。
我如何得到一个数字有两个小数位(当值为'xx.00')时,也可以用逗号分隔。这在JavaScript中是否可行?
答案 0 :(得分:8)
You can give an object to .toLocaleString()
which describes what you want:
var sNumber = (10123.322).toLocaleString(undefined,
{'minimumFractionDigits':2,'maximumFractionDigits':2});
Documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString
原件:
var fNumber = 10123.322;
var sNumber = parseFloat(fNumber.toFixed(2)).toLocaleString();
第一行的数字已经是十进制/浮点数格式。
.toFixed(2)
使用定点表示法将其转换为字符串。
parseFloat()
接受该字符串并将其转换为浮点数。
.toLocaleString()
使用本地格式将其转换为字符串。
答案 1 :(得分:0)
Number.toLocaleString
适用于某个数字,但toFixed
会返回一个字符串。
将字符串强制转换为数字
var number = 123.322;
var string = parseFloat(number).toFixed(2);
var parsed = (+string).toLocaleString();
console.log(parsed);
答案 2 :(得分:0)
为了获得逗号,您必须指定区域设置。语言环境包括数字的逗号。 toFixed() Returns a string
。 toLocaleString()函数逗号处理不在字符串上的数字。所以将字符串解析为float。
var number = 1234567.322;
number = parseFloat(parseFloat(number).toFixed(2)).toFixed(2) ;
number=number.toLocaleString('en');
答案 3 :(得分:0)
toLocaleString函数提供基于语言的数字表示
var number = 3500.00;
if(Number.isInteger(number)){
var zeroappend= number.toLocaleString()+".00";
console.log(zeroappend);//3,500.00;
}else{
console.log(number.toLocaleString());
}
答案 4 :(得分:0)
只需一行即可完成
var num = '12233.3366554';
num = parseFloat(parseFloat(num).toFixed(2)).toLocaleString('en-IN', { useGrouping: true });
答案 5 :(得分:0)
是的,可以使用.toLocaleString,您只需要指定语言即可,也可以指定小数和货币。看这个例子:
35000.2455.toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2,style: 'currency', currency: 'USD' })
这将返回$35,000.25