【问题标题】:String to number JavaScript字符串到数字 JavaScript
【发布时间】:2016-05-08 07:59:55
【问题描述】:

为什么我的代码不能正常工作?

(对不起,我英语不好解释,不是我的错)

HTML:

<input type="text"  id="euro" /> € = <span id="coins"></span> Miitomo Coins

<button onclick="ok()">Convert</button>

JS代码:

function ok() {
    document.getElementById("coins").innerHTML = a + 100;
}

var a = document.getElementById("euro").value;

【问题讨论】:

  • 您可能希望在单击按钮时从输入字段中获取值,因此将其移至ok() 方法中。

标签: javascript string math numbers


【解决方案1】:

两个问题:

  • 您必须定义输入字段而不是值
  • 您必须使用parseInt()

代码:

var input = document.getElementById("euro");
function ok()
{
    document.getElementById("coins").innerHTML = parseInt(input.value) + 100;
}

【讨论】:

  • 我需要把 parseInt() 放在哪里?
  • @TheUserNo2017 在input.value
【解决方案2】:

首先,在单击按钮时获取字段的值,以便获得当前内容:

function ok() {
    var val = document.getElementById( "euro" ).value;
    ...
}

然后,将您抓取的值转换为数字。 DOM 中的内容始终是字符串:

function ok() {
    var val = document.getElementById( "euro" ).value;
    var eurosNumber = Number( val );
    ...
}

请注意,我使用的是Number 而不是parse*

我假设您可以输入整数(12025 等)或小数(1.5010.2520.34 等)进入现场。

您可以使用parseFloatparseInt 进行相同的转换,但更明确的是,您将[some string] 转换为Number

请注意:如果字符串不是有效数字,则会出现错误(Number( [not a number] ) 将返回 NaN)!

最后,做你的补充:

function ok() {
    var val = document.getElementById( "euro" ).value;
    var eurosNumber = Number( val );

    document.getElementById( "coins" ).innerHTML = eurosNumber + 100;
}

【讨论】:

  • 我不会说 Number"explicit" 但我会争辩说,如果需要十进制输入,那么它的使用(或只是一元强制)是有利的超过parseInt,由于跨浏览器的古怪历史行为 - 以及最佳实践要求您始终指定基数这一事实。
【解决方案3】:

你需要在 ok 函数中读取输入值并使用 parseInt 或 parseFloat:

<input type="text"  id="euro" /> € = <span id="coins"></span> Miitomo Coins
<button onclick="ok()">Convert</button>

JavaScript:

function ok() {
      var a = parseFloat(document.getElementById("euro").value);
    document.getElementById("coins").innerHTML = a + 100;
}

JsFiddle here

【讨论】:

    【解决方案4】:
    var a = parseInt(document.getElementById("euro").value);
    

    使用parseInt()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-01
      • 2013-03-17
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      • 1970-01-01
      • 2012-10-11
      • 2013-05-07
      相关资源
      最近更新 更多