我正在努力将其纳入Google Analytics(分析),并且其中一项指导原则是,到目前为止价格都是浮动的。我使用parseFloat()解决了问题,但是对于以00结尾的值,我必须返回两个小数位。例如:(100.00或208.00)。返回浮点值时,它将删除以0结尾的值。
var product_price =“ 100.00”; 值= parseFloat(product_price);
float = 100的结果
我使用.toFixed(2)方法放置两个小数位,但返回为String。
好吧,我已经在多个地方进行了研究,找到的所有解决方案以及我知道的解决方案都将返回一个字符串。我认为从技术上讲这是不可能的。但我想确保这真的不可能。
最后一个.00结束后的绝对值更改。
要弄清parseFloat,请返回一个值,该值的floane点为100.99,而现在不是100.00。
很抱歉以前用葡萄牙语写过这个问题。
谢谢
答案 0 :(得分:2)
数字值本身没有小数位的概念,直到您要打印它为止。如果不打印出来,则数字类型没有固定的小数位数没有任何意义。因此,只有将数字转换为String
时,小数位才起作用。
只要您想“看到” 100.00
,就已经意味着convert the number with value = 100 to a String with 2 decimal places
让您“看到”。您只能看到String
,却看不到数字。
答案 1 :(得分:1)
您正在混淆两件事:数字的值及其显示方式。
100、100.0、100.00(甚至1E2、10E1、0.1E3)是相同数值的视觉表示。
我将撇开一个事实,即在数学意义上,计算机数值并不总是与实数相同。
在JavaScript中,parseFloat
返回numeric
类型。 numeric
的值默认显示为 ,不带零。也就是说,当您执行console.log(100)
时,100也会转换为字符串“ 100”,而console.log(100.00)
也会如此,数字也会转换为字符串...“ 100”
但是您始终可以通过强制显示小数点来指定字符串表示形式(.toFixed()
就是这样做的。)
请参阅:Format number to always show 2 decimal places
您可以在任何toFixed(2)
绑定(变量)上简单地使用numeric
来实现所需的功能。
let a = 100;
console.log(a.toFixed(2));
我使用.toFixed(2)方法放置两个小数位,但返回为String。
是的,但是实际上您尝试显示的任何数字在某些时候都是某种字符串(请考虑一下console.log(100.00)
)。 100和100.00的内部值(numeric
)相同。
仅 的区别在于它们的 string 表示形式,因此,寻求一种做到“没有字符串”的方法是矛盾的。
答案 2 :(得分:0)
{{1}}