当字符串包含非数字字符时,parseFloat() 如何工作?

发布于 2024-12-20 06:37:29 字数 400 浏览 0 评论 0原文

我在执行 parseFloat() 时遇到问题 - 我不明白为什么它会产生以下输出:

document.write(parseFloat("6e2") + "<br />"); //output is 600 why?
document.write(parseFloat("6b2") + "<br />"); //output is 6 why?
document.write(parseFloat("6c2") + "<br />"); //output is 6 why?

你能告诉我这个脚本是如何运作的吗?

I'm having a problem when executing parseFloat() - I don't understand why it produces the following outputs:

document.write(parseFloat("6e2") + "<br />"); //output is 600 why?
document.write(parseFloat("6b2") + "<br />"); //output is 6 why?
document.write(parseFloat("6c2") + "<br />"); //output is 6 why?

Could you tell me how the script is working?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

你的他你的她 2024-12-27 06:37:29

6e2 生成 600,因为它将您的输入视为科学记数法。

6e2 == 6 x 102 == 600

另外两个产生 6,因为 parseFloat 解析 6,然后输入它无法转换为数字,所以它会停止,并返回到目前为止找到的结果。

根据 MDN

parseFloat 是一个顶级函数,不与任何
对象。

parseFloat 解析它的参数,一个字符串,并返回一个浮点数
数字。如果遇到除符号(+或-)以外的字符,
数字 (0-9)、小数点或指数,它返回值
到那时并忽略该角色和所有成功
人物。允许前导和尾随空格。

如果第一个字符无法转换为数字,则parseFloat
返回 NaN。

出于算术目的,NaN 值不是任何基数的数字。
您可以调用 isNaN 函数来确定结果是否为
parseFloat 为 NaN。如果 NaN 传递给算术运算,则
运算结果也将为NaN。

6e2 produces 600 because it's treating your input as scientific notation.

6e2 == 6 x 102 == 600

The other two produce 6 because parseFloat parses the 6, then gets to input it isn't able to convert to a number, so it stops, and returns the result found so far.

Per MDN:

parseFloat is a top-level function and is not associated with any
object.

parseFloat parses its argument, a string, and returns a floating point
number. If it encounters a character other than a sign (+ or -),
numeral (0-9), a decimal point, or an exponent, it returns the value
up to that point and ignores that character and all succeeding
characters. Leading and trailing spaces are allowed.

If the first character cannot be converted to a number, parseFloat
returns NaN.

For arithmetic purposes, the NaN value is not a number in any radix.
You can call the isNaN function to determine if the result of
parseFloat is NaN. If NaN is passed on to arithmetic operations, the
operation results will also be NaN.

行至春深 2024-12-27 06:37:29

parseFloat() 函数确定指定字符串中的第一个字符是否为数字。如果它是数字,那么它会解析字符串,直到到达数字末尾,并将数字作为数字而不是字符串返回。

所以 parseFloat("6b2") 返回 6。

所以 parseFloat("6c2") 返回 6。

parseFloat() function determines if the first character in the specified string is a number. If it is number then it parses the string until it reaches the end of the number, and it returns the number as a number, not as a string.

so parseFloat("6b2") returns 6.

so parseFloat("6c2") returns 6.

ぶ宁プ宁ぶ 2024-12-27 06:37:29

对于第一个,是因为它将 e 视为指数符号 (^),

另外两个只有 6,因为一旦数字结束,它就会忽略其余部分

For the first one, it is because it treats e as an exponent symbol (^)

The other two are only 6 because it ignores the rest once the numbers have ended

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文