如何从提示框中获取数值? [复制]
Posted
技术标签:
【中文标题】如何从提示框中获取数值? [复制]【英文标题】:How to get numeric value from a prompt box? [duplicate] 【发布时间】:2013-07-28 06:20:28 【问题描述】:我试图在 html、jQuery 和 javascript 中进行一些简单的数学计算,所以我想从用户那里获得输入。 对于输入,我尝试这样做:
var x = prompt("Enter a Value","0");
var y = prompt("Enter a Value", "0");
但我无法执行任何类型的计算,因为这些值是字符串。 拜托,谁能告诉我如何将它们转换为整数。
【问题讨论】:
使用Number
将字符串转换为数字。 parseFloat
可以在需要解析字符串中的数字时使用 — 解析和转换的语义不同;阅读文档以了解差异。如果您确实需要整数,请使用parseInt
,但请使用with the second parameter, 10
。
【参考方案1】:
parseInt() 或 parseFloat() 是 JavaScript 中的函数,可以帮助您将值分别转换为整数或浮点数。
语法:
parseInt(string, radix);
parseFloat(string);
string:要解析为数字的字符串表达式。
radix:(可选,但强烈建议使用)要使用的数字系统的基数 - 2 到 36 之间的数字。
示例:
var x = prompt("Enter a Value", "0");
var y = prompt("Enter a Value", "0");
var num1 = parseInt(x);
var num2 = parseInt(y);
在此之后,您可以对它们执行任何您想要的计算。
【讨论】:
-1 原因如下:parseFloat() 没有第二个参数(阅读更多:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…),在 parseInt 中省略基数是一种不好的做法(请参阅此处的解释:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…)和finally:执行计算不需要转换(JavaScript 是弱类型,证明:jsfiddle.net/ehhfE)。 @Kadima,我恢复了您建议的部分编辑:prompt 函数的第二个参数不是基数,而是默认值。 @trincot 是的,你是对的。抱歉,盯着电脑屏幕太久了。【参考方案2】:如果您对其执行计算,JavaScript 会将数字字符串“转换”为整数(因为 JS 是弱类型)。但您可以使用parseInt
或parseFloat
自行转换。
记得把基数放在parseInt
!
如果是整数输入:
var x = parseInt(prompt("Enter a Value", "0"), 10);
var y = parseInt(prompt("Enter a Value", "0"), 10);
如果是浮动:
var x = parseFloat(prompt("Enter a Value", "0"));
var y = parseFloat(prompt("Enter a Value", "0"));
【讨论】:
【参考方案3】:var xInt = parseInt(x)
这将返回 integer
值或 NaN
。
阅读更多关于parseInt here的信息。
【讨论】:
【参考方案4】:您可以使用parseInt()
,但如前所述,应指定基数(基数):
x = parseInt(x, 10);
y = parseInt(y, 10);
10 表示以 10 为底的数字。
请参阅this link,了解为什么需要使用基数。
【讨论】:
现在可以了(添加了基数免责声明)。 谢谢@Tadeck +1,我暂时忘记了 ;)【参考方案5】:Working DemoReading more Info
parseInt(x)
会将其转换为整数
x = parseInt(x);
x = parseInt(x,10); //the radix is 10 (decimal)
parseFloat(x)
会将其转换为浮点数
Working DemoReading more Info
x = parseFloat(x);
你可以直接使用prompt
var x = parseInt(prompt("Enter a Number", "1"), 10)
【讨论】:
【参考方案6】:你必须使用 parseInt() 来转换
例如。
var z = parseInt(x) + parseInt(y);
如果要处理浮点值,请使用 parseFloat()。
【讨论】:
在使用parseInt
时应始终指定基数(参见Andy G 的回答)以上是关于如何从提示框中获取数值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何将系数值从逻辑回归中提取到 R 中的数据框中? [复制]