Javascript:用1.0乘法解析数字

Javascript:用1.0乘法解析数字,javascript,Javascript,从这样的字符串中解析数字安全吗 rate *= 1.0; sTraf.setDelay((rate+1)*1000); rate是一个仅包含1个数字的字符串。通常为否,如果无法解析rate,它将被设置为NaN,这可能会导致错误,具体取决于您对它的处理方式 如果您可以确定rate是一个数字,您可以使用rate=+rate来获取一个数字。通常是否,如果rate无法解析,它将被设置为NaN,这可能会导致错误,具体取决于您对它所做的操作 如果您可以确定rate是一个数字,您可以使用rate=+rate

从这样的字符串中解析数字安全吗

rate *= 1.0;
sTraf.setDelay((rate+1)*1000);

rate
是一个仅包含1个数字的字符串。

通常为否,如果无法解析
rate
,它将被设置为
NaN
,这可能会导致错误,具体取决于您对它的处理方式


如果您可以确定
rate
是一个数字,您可以使用
rate=+rate
来获取一个数字。

通常是否,如果
rate
无法解析,它将被设置为
NaN
,这可能会导致错误,具体取决于您对它所做的操作


如果您可以确定
rate
是一个数字,您可以使用
rate=+rate
来获取一个数字。

我不推荐使用它。代码片段并不清楚:真正的意图隐藏在乘法的隐含副作用中(javascript试图将非数字变量转换为其数字“等价物”),而不是从代码中清晰可见

如果您使用
parseFloat
,阅读代码的每个人都会清楚地知道您试图做什么:您有一个字符串,它应该可以作为一个float进行解析,并且您想要强制转换它。此外,作为一个专门为该任务编写的函数,它具有针对边缘情况的所有必要的“故障保护”


如果出于某种奇怪的原因,你真的想/不得不使用
*1.0
,至少你应该在注释中说明你的代码的用途(即将字符串转换为浮点,而不是乘以1)。

我不推荐这样做。代码片段并不清楚:真正的意图隐藏在乘法的隐含副作用中(javascript试图将非数字变量转换为其数字“等价物”),而不是从代码中清晰可见

如果您使用
parseFloat
,阅读代码的每个人都会清楚地知道您试图做什么:您有一个字符串,它应该可以作为一个float进行解析,并且您想要强制转换它。此外,作为一个专门为该任务编写的函数,它具有针对边缘情况的所有必要的“故障保护”


如果出于某种奇怪的原因,你真的想/不得不使用
*1.0
,至少你应该在注释中说明你的代码的用途(即将字符串转换为浮点,而不是乘以1)。

你这样认为有什么不对?为什么不直接使用“parseFloat”?您可以使用不常用的
+速率
从字符串中获取数字这是嵌入式html页面的一部分。我们有100次使用*1.0。我们希望通过不使用parseFloat/parseInt(文件大小)来节省内存空间@哈克托:我会检查的,thx。“从这样的字符串中”我看不到字符串。你这么认为是怎么回事?为什么不直接使用“parseFloat”?你可以使用不常用的
+速率
从字符串中获取数字这是嵌入html页面的一部分。我们有100次使用*1.0。我们希望通过不使用parseFloat/parseInt(文件大小)来节省内存空间@哈克托:我会检查的,thx。“从这样的字符串”我看不到字符串。在这个例子中,rate是一个介于1到10之间的整数。在这个例子中,rate是一个介于1到10之间的整数。