我有一个文本框,其结果是比利时数字格式,如下
<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视为字符串。
答案 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, '');
)。