当字符串包含非数字字符时,parseFloat() 如何工作?
我在执行 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
6e2
生成 600,因为它将您的输入视为科学记数法。6e2 == 6 x 102 == 600
另外两个产生 6,因为
parseFloat
解析 6,然后输入它无法转换为数字,所以它会停止,并返回到目前为止找到的结果。根据 MDN:
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()
函数确定指定字符串中的第一个字符是否为数字。如果它是数字,那么它会解析字符串,直到到达数字末尾,并将数字作为数字而不是字符串返回。所以 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.
对于第一个,是因为它将 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