Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中转换数字生成NAN_Javascript - Fatal编程技术网

在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。可能的重复项