【发布时间】:2015-10-05 21:52:02
【问题描述】:
我正在尝试使用按钮制作一个简单的计算器,但在放置小数点时遇到了麻烦。我正在尝试将数字增加到该点,添加一个十进制字符(从而使其成为一个字符串),并使用parseFloat 再次使其成为一个数字。这是我的代码:
function decimalButton() {
inputValue = inputValue + ".";
inputValue = Number.parseFloat(inputValue);
show(inputValue);
}
其中inputValue 最初是int,而show() 只显示我输入的任何值。
但是,当我运行这段代码时,显示中并没有添加小数,而是将其视为一个大整数(例如,显示 44.6 并视为 446。
但如果我将parseFloat 行编码,我会得到正确的显示,但它是一个字符串,我不能用它做任何事情。任何帮助将不胜感激。
【问题讨论】:
-
这里没有足够的信息给你一个答案。我们需要了解 inputValue 的来源以及它是如何构建的。 Jon Skeet 在codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-questioncodeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question 写了一篇非常好的博客文章
-
所以你有
44.6并在最后附加另一个点?那么44.6.应该是什么意思? -
@TravisJ throbber 旋转了约 20 秒,所以我将其复制到缓冲区。然后我刷新了一个页面 - 没有评论,所以我再次粘贴并添加了更多文本。然后我提交一个新的后,前一个出现可能是5-7秒。最终的一致性是最终的。
-
@zerkms 最后没有点。它显示并被视为简单 446 那是句子中的一个句号,我应该输入更好的哈哈
-
给定一个字符串
"446."我希望任何语言 X 中的 parseFloat 做以下两件事之一:产生446.0或产生446...我会不期望它保留多余的十进制字符。正如@Buzinas 所说,在用户提供输入时将内容保留为字符串,然后仅在用户完成后将它们转换为数字。比如说,用户输入446. + 3.9你可以在他们按下加号键时输入parseFloat("446.")- 然后你就知道你有一个数字后跟一个运算符。或者等到他们按下=并解析整个方程。
标签: javascript parsefloat