javascript - 我的土地面积计算器应用程序的逻辑

标签 javascript html css dom

我正在为我叔叔制作这个英亩和克拉计算器,以帮助他工作。

我将用这个例子来解释这件事的整个想法。因此,如果您添加 3.22 + 2.2,则应为 = 5.42,但在此计算器中,3.22 + 2.2 应 = 6,因为 3 英亩 + 2 英亩 = 5 英亩,22 克拉 + 2 克拉 = 1 英亩,因此总计为 6 英亩。

我在代码中执行此操作的方式是将 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;
}

我添加了我遇到困难的代码部分。

注意:我试图让这个东西能够添加多个数字,而不仅仅是两个。另外,我正在尝试加减法,但我不知道如何开始减法,因为我什至还没有完成加法。

最佳答案

如果您所说的错误是这样的:

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)。 然后,当用户按下 equal 按钮时,将当前输入字段中的数字添加到 firstNum 变量中。

<小时/>

关于如何将两个不同的数字相加,将要相加的两个数字分解为英亩部分和克拉部分。然后分别添加它们,然后使用您的getTotal

因此,如果数字是 3.21 和 5.18,则将 3 和 5 加起来,将 21 和 18 加起来,然后将它们两者相加。 你会得到 8.39。最后,将 8.39 转换为 9.15。

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

关于javascript - 我的土地面积计算器应用程序的逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60049831/

相关文章:

javascript - Material UI 样式在组件中不起作用(警告 : several instances of `@material-ui/styles` )

JavaScript 表单验证未按预期工作

javascript - JavaScript 如何确定数组索引是否为整数?

javascript - 向下滚动页面时如何保护模式弹出位置?

javascript - 防止通过后退按钮重新提交表单+刷新/重试

html - 有没有办法让我的 anchor 链接出现在我的标题下方?

html - 中型和大型设备上为 2 x 2 矩阵,小型设备上为 4 x 1 矩阵

javascript - 对象字面量未定义

javascript - Webpack Clean-/public/js 已被删除

html - @media 不能与 polymer 自定义 css 正常工作