【问题标题】:Javascript If statement for simple dinner tip calculator用于简单晚餐小费计算器的 Javascript If 语句
【发布时间】:2017-03-26 09:56:33
【问题描述】:

我有这个脚本,它会提示输入 DinnerCost 和 taxRate 以生成 taxPaid。我想做一个 if 语句,确保只输入整数而不是字符串。

这是我的代码:

<button id="btn"> Play the Dinner Game </button>

<p id="para"></p>



document.getElementById("btn").addEventListener("click", dinnerThing);



function dinnerThing () {
        var cost = prompt("how much did it cost?");

        if(cost == "") {
            document.getElementById("para").innerHTML = "sorry please enter an integer";    
        }

        var taxRate = prompt("What was the tax rate?");

        if(taxRate == "") {
            document.getElementById("para").innerHTML = "sorry please enter an integer";    
        }



        var taxPaid = cost * taxRate;


        document.getElementById("para").innerHTML = "You paid " + taxPaid + " dollars in tax for your dinner";
}

为什么 if 语句在这里不起作用?

【问题讨论】:

  • “不工作”是什么意思?您没有显示任何输入或输出。也许编辑您的问题以显示这一点?
  • 我的代码没有显示吗?
  • 就目前而言,我希望 if 语句确保用户输入了有效值(数字)。
  • 是的,您的代码正在显示。你声称它不起作用。但是你没有显示任何输出。你没有显示你输入的内容。您没有解释“不起作用”是什么意思。
  • 当它提示我晚餐花了多少钱,我输入一个字符串值,比如“Blah”,它会输出这个

标签: javascript html if-statement


【解决方案1】:

if(cost == "")if(taxRate == "") 都在检查是否 变量 (cost1 ortaxRate`) 等于一个空字符串,而不是如果它 等于一个整数

为确保您从提示中收到一个数字值,您可以使用parseInt()

parseInt() 将从字符串中返回一个等价的数字(整数或浮点数)。如果字符串不能转换为数字,则返回 NaN。

接下来的步骤是:

  • 获取成本和税费的 parseInt() 值,将它们存储在变量中

  • 使用isNaN() 检查前面的变量返回是否为NaN。

  • 如果isNaN()返回true,则显示“对不起,请输入一个整数”消息

  • 如果isNaN()返回false,则计算taxPaid和输出taxPaid值

生成的代码如下所示:

var numberCost = parseInt(cost),
  numberTaxRate = parseInt(taxRate);

if(isNaN(numberCost) || isNaN(numberTaxRate)) {
   document.getElementById("para").innerHTML = "sorry please enter an integer";  
}else{
  var taxPaid = cost * taxRate;
  document.getElementById("para").innerHTML = "You paid " + taxPaid + " dollars in tax for your dinner";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多