在javascript中转换数字生成NAN
我有一个文本框,其结果是比利时数字格式,如下所示在javascript中转换数字生成NAN,javascript,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.
<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。如何在javascript中获得数字
请注意,在调试模式下,我将值1525,8视为字符串。这里的问题是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');
)。不删除,而是替换为点:数字(“1525,8”。replace(/,/g'))使用parseFloat(“1525,8”)
:将字符串转换为float。可能的重复项