关于在Javascript中添加变量的问题

Issue regarding adding variables in Javascript

本文关键字:变量 问题 添加 Javascript      更新时间:2023-09-26

最近开始研究Javascript,并在将两个变量添加到时遇到问题

function btn_click()
{
    var money = parseInt(document.getElementById("money").value);
    var dollar = parseInt(3.67 * money);
    var xfer = parseInt(0);
    var total = parseFloat(dollar + xfer);
    var dollar = dollar.toFixed(2);
    if (isNaN(money))
    {
        alert("Please enter a valid amount!");
    }
    else
{
    if (money > 15000)
    {
    xfer = 0;
    document.writeln("Amount in dirhams: " + dollar +" AED<br>");
    document.writeln("Transfer charges: " + xfer +" AED<br>");
    document.writeln("Total: <span style='font-weight:bold'>" +total+" AED<br>");
    }
    else
    {
    xfer = 25;
    document.writeln("Amount in dirhams: " + dollar +" AED<br>");
    document.writeln("Transfer charges: " + xfer +" AED<br>");
    document.writeln("<span style='font-weight:bold'> Total: "+ total + " AED<br></span>");
    }
}
}

基本上,我在"ELSE"部分的最后一行

document.writeln("Total: <span style='font-weight:bold'>" +total+" AED<br>");

不起作用,当我点击按钮时,所有内容都会被计算出来,但最后一行,最后一行将只显示我的变量"美元"。比方说,我输入100并点击按钮,我的第一行是367.00 AED,第二行是25 AED,但我的最后一行是367 AED,它没有将前两行相加。

对不起,如果我看起来不清楚,如果你需要更多信息,我很乐意给它

谢谢大家

您的问题出现在脚本的第一行中:

var total = parseFloat(dollar + xfer);

xfer具有有意义的值之前,您正在计算total
您需要在document.writeln("Total: ...行之前计算total

这是因为您只为总额分配美元值。你在申报总额时所做的是:

var total = parseFloat(parseInt(3.67*money) + parseInt(0)) => parseFloat(3.67*money) //because xfer is 0 at that point

所以你需要做的是在给xfer分配一些值后计算总数:

function btn_click()
{
    var money = parseInt(document.getElementById("money").value);
    var dollar = parseInt(3.67 * money);
    var xfer = parseInt(0);
    var total = 0;
    var dollar = dollar.toFixed(2);
    if (isNaN(money))
    {
        alert("Please enter a valid amount!");
    }
    else
    {
        if (money > 15000)
        {
            xfer = 0;
            document.writeln("Amount in dirhams: " + dollar +" AED<br>");
            document.writeln("Transfer charges: " + xfer +" AED<br>");
            total = parseFloat(Number(dollar) + Number(xfer));
            document.writeln("Total: <span style='font-weight:bold'>" +total+" AED<br>");
        }
        else
        {
            xfer = 25;
            document.writeln("Amount in dirhams: " + dollar +" AED<br>");
            document.writeln("Transfer charges: " + xfer +" AED<br>");
            total = parseFloat(Number(dollar) + Number(xfer));
            document.writeln("<span style='font-weight:bold'> Total: "+ total + " AED<br></span>");
        }
    }
}