Javascript 如何使用toLocalString()方法对该数字进行四舍五入?
我有这个号码:7.425000000000001 我想把它四舍五入如下结果:7,42€ 但我的结果是7,43欧元 这是我的代码:Javascript 如何使用toLocalString()方法对该数字进行四舍五入?,javascript,html,string,function,object,Javascript,Html,String,Function,Object,我有这个号码:7.425000000000001 我想把它四舍五入如下结果:7,42€ 但我的结果是7,43欧元 这是我的代码: this.article.price_pvp.toLocaleString('de-DE', { style: 'currency', currency: 'EUR', maximumFractionDigits: 2 }); //this return me
this.article.price_pvp.toLocaleString('de-DE',
{
style: 'currency',
currency: 'EUR',
maximumFractionDigits: 2
}); //this return me 7,43
由于
5
,它是四舍五入的-首先使用toFixed(2)
:
this.article.price_pvp.toFixed(2).toLocaleString('de-DE',
{
style: 'currency',
currency: 'EUR',
maximumFractionDigits: 2
});
编辑
将其更改为浮点,然后是字符串,然后取前五位数字并使用toFixed()
:
试试这个。您可以根据所需的精度更改n的值。然后你可以使用toLocaleString
var a=7.425000000000001
var n=2;
console.log(a.toFixed(n)-(1/Math.pow(10,n))*(n-1))
试试这个。我认为您需要将浮点值解析为小数点后的两位数
this.article.parseFloat(price_pvp).toFixed(2).tolocalesting('de-de'),
{
风格:“货币”,
货币:欧元,
最大分数位数:2
});
也许您可以在使用ToLocalString()
之前,根据什么规则执行yourNumber.toFixed(2)
,如图所示?7.429
应该四舍五入到什么值?@luk2302我想他只是想把他的数字截成2decimals@luk2302我不认为它应该是四舍五入的,只是去掉小数点。我没有问你@Nenri或JackBashford,我问OP他想做什么,我可以整天对他的意图做出假设。没问题@Nenri总是很乐意help@AntonioMoralesparseFloat(7.425000000000001.toString().substr(0,5)).toFixed(2)代码>这是一个外观不好的解决方案,但仍然有效。(我应该给出答案吗?@JackBashford在使用.toFixed(2)
Whoops@Nenri修复了由于js错误的十进制处理而无法工作的问题)之前,您忘了再次将其解析为浮点。查看工作解决方案的其他答案试试这个例子:var a=7.425000000000001;var值=解析浮点(a).toFixed(2);console.log(值)代码>由于相同的原因不工作。OP需要7时返回7.43。42@Jaykant为什么不呢?你的第二种方法与这个问题的另一个答案完全相同。没问题,你的主要解决方案是好的,而且更加数学化,所以两者都可以接受
parseFloat(parseFloat(this.article.price_pvp).toString.substring(0, 5)).toFixed(2);