此应用程序需要帮助(英亩和克拉数计算器)

问题描述 投票:0回答:1

因此,我正在为叔叔制作这个英亩和克拉的计算器,以帮助他的工作,在这个示例中,我将解释这件事的整个想法,因此,如果您加上3.22 + 2.2,则它应为= 5.42,但在这个计算器3.22 + 2.2应该= 6,导致3英亩+ 2英亩= 5英亩,而22克拉+ 2克拉= 1英亩,所以总数将是6英亩,我在代码中的做法是m将数字3.22拆分为两个,3和22,另一个拆分为2和2,然后将整数和分数相加,如果分数> = 24,则将整数相加,如果存在整个计算中剩下的分数,例如3.15 + 2.15 = 6.6,但是我在如何加数字上受困,那里还有一个错误,我不知道如何求解。

无论如何,这是code

`

function getValue(v) {
    return +v.toString().match(/\.(\d*)/)[1] || 0;
}
function getTotal() {
    d += Math.floor(num);
    p += getValue(num);

    if (p >= 24) {
        p -= 24;
        ++d;
    }
    total = d + p / 100;
    ptag.textContent = total;
}

`我在卡住的地方添加了代码部分,但请参考链接。

注意:我正在尝试使事物能够添加多个数字,而不仅仅是两个。我也在尝试添加减法,但是我不知道如何开始进行减法,因为我还没有完成加法。

任何帮助将不胜感激,并在此先感谢。

javascript html css dom
1个回答
0
投票

如果您正在谈论的错误是这样的:

Uncaught TypeError: Cannot read property '1' of null 

这是由于您的getValue函数。我的建议是,不要使用像

这样复杂的东西
function getValue(v) {
return +v.toString().match(/\.(\d*)/)[1] || 0;
}

使用

function getValue(v) {
    return floor((v % 1) * 100);
}

这与您编写的代码具有相同的作用。例如,从输入3.13返回13。

但是几乎没有其他问题。

首先,您应该现在并且经常更新您的num变量,否则,它将始终保持为空字符串(您仅在第20行定义了该变量,之后没有对其进行更新) 。

第二,使用后应清除dp变量。截至目前,这两个变量在您每次运行getTotal函数

时都会不断增加。

关于如何添加两个数字的问题,建议您创建一个变量,以便在其中存储用户键入的第一个数字。

例如,当用户键入4.19并按加号按钮时,将4.19保存到变量中(假设firstNum)。然后,当用户按下等号按钮时,将来自当前输入字段的数字firstNum变量相加。


关于您要如何精确地添加两个不同的数字,请将要添加到Acres部分和Karats部分的两个数字分开。然后分别添加它们,然后使用getTotal

因此,如果数字是3.21和5.18,则将3和5相加,再将21和18相加,然后将它们都加。您将获得8.39。最后,将8.39转换为9.15。

抱歉,如果我的计算不正确。这是我第一次有了这个概念!但我相信这是要走的路。

© www.soinside.com 2019 - 2024. All rights reserved.