在javascript中转换数字会产生NAN

时间:2016-07-12 07:31:09

标签: javascript

我有一个文本框,其结果是比利时数字格式,如下

<input type="text" name="valeurCatalogue" kendo-numeric-text-box="" k-culture='"fr-BE"' k-spinners="{{false}}" ng-disabled="isValueCatalogDisabled" ng-model="tarifForm.Vehicle.valeurCatalogue" />

将值设为1525,8后,该值将转换为1.525,80,这是正确的。

现在,如果我申请Number(1525,8),我会获得NAN.How如何获取javascript中的数字?

请注意,在调试模式下,我将值1525,8视为字符串。

1 个答案:

答案 0 :(得分:4)

这里的问题是javascript使用美式表达数字的方式(就像我遇到的大多数编程语言一样)。所以,1,5不是你期望的一半,而是一个有效的数字。因此,当您尝试解析它时,您会得到NaN(非数字)。在javascript中,写出所述数字的正确方法是1.5。如果你有1525,8这个简单的方法就是用这样的点替换所有逗号:

const numStr = '1525,8';
const replaced = numStr.replace(/,/, '.');
const num = Number(replaced);

但是,如果您的号码为1.525,8,则需要先删除这些点(str.replace(/\./g, '');)。