在JS中,我有一个来自PHP的浮点数,如下所示:var number = 2,206.00在JS中,我需要使用parseFloat这个数字。所以我尝试了parseFloat(number),但它只给予2。那么,如何得到2206.00而不是2呢?
var number = 2,206.00
parseFloat
parseFloat(number)
2206.00
iswrvxsc1#
Number.parseFloat是与globalThis.parseFloat相同的函数对象。如果globalThis.parseFloat遇到以下字符:
Number.parseFloat
globalThis.parseFloat
E
e
...它返回该字符之前的值,忽略无效字符及其后面的字符。第二个小数点也会停止分析。因此,下面打印2。这似乎是你的问题。
2
console.log(parseFloat('2,206.00')) // 2
解决方案:使用字符串操作删除数字中的逗号(在解析它之前实际上是String)。
String
console.log(parseFloat('2,206.00'.replaceAll(',', ''))) // 2206
如果需要将值存储为数字,但将其呈现为格式化字符串,则可能需要Number#toFixed来呈现小数点后的值:
console.log((2206).toFixed(2)) // '2206.00'
最后一点:注意本地化,因为有些国家使用逗号表示小数点,小数点用于数字分组。正如@t.niese所说:存储数值而不进行本地化,然后在应用表面应用本地化。但这是一个更广泛、更复杂的主题。
qgzx9mmu2#
你必须先删除逗号,然后使用parseFloat。在点后大约2个小数点,我看到你在PHP中使用number_format($myNumber, 2),所以在JS中使用.toFixed(2)。
number_format($myNumber, 2)
.toFixed(2)
var number = '2,206.00'; var result = parseFloat(number.replace(/,/g, '')).toFixed(2); console.log(result);
2vuwiymt3#
首先,你目前拥有的东西很可能会在JS中触发意外数字错误。生成的值似乎来自number_format() PHP函数,该函数返回一个字符串。此外,var number变量也应该被认为是一个字符串,因为我们有一个字符串格式。所以首先你应该在var number = '2,206.00'后面加上引号,你必须让字符串像浮点数一样,以便将其解析为浮点数,所以我们应该用空字符串替换,,以便数字变成2206.00number = number.replace(",","")。最后,现在应该完成解析,以便将类似float的字符串转换为实际的float parseFloat(number)。完整代码:
number_format()
var number
var number = '2,206.00'
,
number = number.replace(",","")
var number = '2,206.00'; number.replace(",",""); number = parseFloat(number);
r1wp621o4#
好的,基本上你想要一个小数点后的两位数,比如(20.03),试试这个
parseFloat(number).toFixed(2)
4条答案
按热度按时间iswrvxsc1#
Number.parseFloat
是与globalThis.parseFloat
相同的函数对象。如果
globalThis.parseFloat
遇到以下字符:E
或e
)...它返回该字符之前的值,忽略无效字符及其后面的字符。第二个小数点也会停止分析。
因此,下面打印
2
。这似乎是你的问题。解决方案:使用字符串操作删除数字中的逗号(在解析它之前实际上是
String
)。如果需要将值存储为数字,但将其呈现为格式化字符串,则可能需要Number#toFixed来呈现小数点后的值:
最后一点:注意本地化,因为有些国家使用逗号表示小数点,小数点用于数字分组。正如@t.niese所说:存储数值而不进行本地化,然后在应用表面应用本地化。但这是一个更广泛、更复杂的主题。
qgzx9mmu2#
你必须先删除逗号,然后使用
parseFloat
。在点后大约2个小数点,我看到你在PHP中使用
number_format($myNumber, 2)
,所以在JS中使用.toFixed(2)
。2vuwiymt3#
首先,你目前拥有的东西很可能会在JS中触发意外数字错误。
生成的值似乎来自
number_format()
PHP函数,该函数返回一个字符串。此外,var number
变量也应该被认为是一个字符串,因为我们有一个字符串格式。所以首先你应该在
var number = '2,206.00'
后面加上引号,你必须让字符串像浮点数一样,以便将其解析为浮点数,所以我们应该用空字符串替换,
,以便数字变成2206.00
number = number.replace(",","")
。最后,现在应该完成解析,以便将类似float的字符串转换为实际的floatparseFloat(number)
。完整代码:
r1wp621o4#
好的,基本上你想要一个小数点后的两位数,比如(20.03),试试这个