Javascript计算器,计算4个数值,并将税金乘以总数

Javascript计算器,计算4个数值,并将税金乘以总数,javascript,Javascript,在一个螺母壳中,我必须创建一个计算,输入4个数值,然后乘以每单位加起来的价格和计算到总数中的税款。我一直在上网找剧本,但失败了 编辑***:我已经根据我所阅读和理解的内容编辑了部分代码,但仍然无法使用我的函数来执行命令并使用tax执行值 <html> <head> <title>Purchase&Tip Calculator</title> function calculate() { var total = cost*total

在一个螺母壳中,我必须创建一个计算,输入4个数值,然后乘以每单位加起来的价格和计算到总数中的税款。我一直在上网找剧本,但失败了

编辑***:我已经根据我所阅读和理解的内容编辑了部分代码,但仍然无法使用我的函数来执行命令并使用tax执行值

 <html>
<head>
<title>Purchase&Tip Calculator</title>
function calculate() {
    var total = cost*total;
    var cost = document.getElementById("cost").value;
    var tax = document.getElementById("tax").value;

    total = cost*tax;
    document.getElementById("total").value = total;
}
</script>

</head>

<body>

<h1 align="left">Purchase&Tip Calculator</h1>

<input type="text" id="cost" />

<input type="text" id="cost" />

<input type="text" id="cost" />

<input type="text" id="tax" />

<input type="text" id="total" />

<button id="cost" onclick="calculate()" value="Calculate!" />Calculate!</button>
    </form>
</body>
</html>

购买和小费计算器
函数计算(){
var总额=成本*总额;
var成本=document.getElementById(“成本”).value;
var tax=document.getElementById(“tax”).value;
总额=成本*税金;
document.getElementById(“总计”).value=total;
}
购买和小费计算器
算算!

如果我理解正确,您是否正在尝试从输入字段中收集一些数字,进行一些计算,然后打印结果?如果是这样,我会给你一个基本的例子:

var total = 0;
var cost = document.getElementById("cost").value;
var tax = document.getElementById("tax").value;

total = cost*tax;
您的总价值不应该来自输入元素(至少对我来说没有意义)。相反,您希望在代码中定义它,零是标准实践。然后,您只需使用适当的变量初始化成本和税收,并将它们相乘,将结果设置为“总计”变量的值

这应该绑定到在输入字段被占用后要触发的事件(如按钮单击或按键向下/向上)。希望这有帮助

第二部分 这是对下面收到的评论的回应。首先要创建一个函数来封装此代码:

function calculate() {
    var total = 0;
    var cost = document.getElementById("cost").value;
    var tax = document.getElementById("tax").value;

    total = cost*tax;
    document.getElementById("total").value = total;
}
以下是相应的HTML:

<input type="text" id="cost" />
<input type="text" id="tax" />
<input type="text" id="total" />
<button id="cost" onclick="calculate()" value="Calculate!" />Calculate!</button>

算算!

下面是一个工作示例:

如果我理解正确,您正在尝试从输入字段中收集一些数字,进行一些计算,然后打印结果?如果是这样,我会给你一个基本的例子:

var total = 0;
var cost = document.getElementById("cost").value;
var tax = document.getElementById("tax").value;

total = cost*tax;
您的总价值不应该来自输入元素(至少对我来说没有意义)。相反,您希望在代码中定义它,零是标准实践。然后,您只需使用适当的变量初始化成本和税收,并将它们相乘,将结果设置为“总计”变量的值

这应该绑定到在输入字段被占用后要触发的事件(如按钮单击或按键向下/向上)。希望这有帮助

第二部分 这是对下面收到的评论的回应。首先要创建一个函数来封装此代码:

function calculate() {
    var total = 0;
    var cost = document.getElementById("cost").value;
    var tax = document.getElementById("tax").value;

    total = cost*tax;
    document.getElementById("total").value = total;
}
以下是相应的HTML:

<input type="text" id="cost" />
<input type="text" id="tax" />
<input type="text" id="total" />
<button id="cost" onclick="calculate()" value="Calculate!" />Calculate!</button>

算算!
下面是一个工作示例:

在您的代码中:

> function fixOrder() {
>     const TAX = 0.975;
const
是ECMAScript的一部分,不是ECMAScript的一部分。它已经出现,并且可能出现在ECMAScript的未来版本中,但不应在通用web上使用,因为它将在不支持它的浏览器中引发错误

>    var numPrice;
>    var total;
>    var tax;
> 
>    numPrice = parseFloat(document.getElementById("cost").value, 10);
接受单个字符串参数。parseInt没有基数。将字符串转换为数字的方法有很多,一种是一元
+
运算符,另一种是作为函数调用的
number
parseFloat
可能很好,只是需要更多的输入

由于控件位于表单中,因此可以更轻松地将其作为表单的命名属性进行访问:

  var form = document.getElementById('form');
  numPrice = +form.cost.value;

>    tax      = parseFloat(document.getElementById("tax").value, 10);
已经有一个名为
TAX
的变量,该值未在任何地方使用

>    total    = parseFloat(document.getElementById("total").value, 10);
>    numPrice = numPrice * TAX;
>    total    = numPrice;
在这里,
total
的值分配两次,第二个值代替第一个值

>    total    = document.getElementById("total").value = "$" + total.toFixed(2);
这种类型的任务不利于维护,最好保持简单。另外,
total
将有一个前导“$”,这将导致
parseFloat
返回
NaN
。最好将“$”放在表单的文本中,然后将值放在字段中

您可以在算术中使用复合运算符,它们可能会混淆,但如果多次使用,则更容易识别。也许你的意思是:

  total = parseFloat(form.total.value);
  numPrice *= TAX;
  total += numPrice;
  form.total.value = total.toFixed(2);
在HTML部分:

>  <p>Total: <input type="text" id="total" name="total" value="" disabled=
   "disabled" /></p>
然后,您还可以将内容设置为粗体或单色。

在代码中:

> function fixOrder() {
>     const TAX = 0.975;
const
是ECMAScript的一部分,不是ECMAScript的一部分。它已经出现,并且可能出现在ECMAScript的未来版本中,但不应在通用web上使用,因为它将在不支持它的浏览器中引发错误

>    var numPrice;
>    var total;
>    var tax;
> 
>    numPrice = parseFloat(document.getElementById("cost").value, 10);
接受单个字符串参数。parseInt没有基数。将字符串转换为数字的方法有很多,一种是一元
+
运算符,另一种是作为函数调用的
number
parseFloat
可能很好,只是需要更多的输入

由于控件位于表单中,因此可以更轻松地将其作为表单的命名属性进行访问:

  var form = document.getElementById('form');
  numPrice = +form.cost.value;

>    tax      = parseFloat(document.getElementById("tax").value, 10);
已经有一个名为
TAX
的变量,该值未在任何地方使用

>    total    = parseFloat(document.getElementById("total").value, 10);
>    numPrice = numPrice * TAX;
>    total    = numPrice;
在这里,
total
的值分配两次,第二个值代替第一个值

>    total    = document.getElementById("total").value = "$" + total.toFixed(2);
这种类型的任务不利于维护,最好保持简单。另外,
total
将有一个前导“$”,这将导致
parseFloat
返回
NaN
。最好将“$”放在表单的文本中,然后将值放在字段中

您可以在算术中使用复合运算符,它们可能会混淆,但如果多次使用,则更容易识别。也许你的意思是:

  total = parseFloat(form.total.value);
  numPrice *= TAX;
  total += numPrice;
  form.total.value = total.toFixed(2);
在HTML部分:

>  <p>Total: <input type="text" id="total" name="total" value="" disabled=
   "disabled" /></p>

然后,您还可以将内容设置为粗体或单色。

这里没有任何内容会调用
fixOrder
。除此之外,您应该从
total=document.getElementById(“total”).value=“$”+total.toFixed(2)中删除
total=
我看不出问题。输入4个价格标签的最佳代码是什么?只需将同一个命令复制粘贴3次?而且,它不会在“total=getTax($('#tax').val())*sum”上自动执行总计;它只是显示有什么不正确的地方吗?天哪,太复杂了。那么,parsefloat命令对这种类型的代码没有用处@Robbt你这里没有什么东西可以进去