Javascript:使用toLocaleString + Tofixed

时间:2016-10-20 10:38:58

标签: javascript formatting

我需要为正在工作的项目格式化一个数字,唯一的问题是我无法按照我想要的格式化它。

我使用login.component.ts方法将数字转换为localestring,它给了我逗号,但我也需要小数位,我似乎没什么用。

import loginComponentTemplateUrl from './url'
@Component({
     templateUrl: loginComponentTemplateUrl
})
...

上面的代码只返回parsefloated数字和tofixed十进制值,但它不会添加逗号。

我如何得到一个数字有两个小数位(当值为'xx.00')时,也可​​以用逗号分隔。这在JavaScript中是否可行?

6 个答案:

答案 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