【问题标题】: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

标签: javascript jquery html


【解决方案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);

在此之后,您可以对它们执行任何您想要的计算。

【讨论】:

【解决方案2】:

如果您对其执行计算,JavaScript 会将数字字符串“转换”为整数(因为 JS 是弱类型)。但您可以使用parseIntparseFloat 自行转换。

记得把基数放在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 的回答)
        猜你喜欢
        • 2021-05-17
        • 1970-01-01
        • 2011-07-08
        • 1970-01-01
        • 2015-05-13
        • 2018-07-24
        • 1970-01-01
        • 2018-10-03
        相关资源
        最近更新 更多