您好我正在尝试对三个值进行简单的计算:a + b * c
但总错误。如果a
为10且b
为10,则将乘以c
乘以2,即2.4。我应该得到48分。目前获得2424。
function compute() {
var a = $('#a').val();
var b = $('#b').val();
var c = $('#c').val();
var total = (a + b) * c;
$('#total').val(total);
}
$('#a, #b, #c').change(compute);
答案 0 :(得分:1)
基本数学:乘法优先于加法。
所以在你的代码中,a被添加到b * c的结果中。
使用:
var total = (a + b) * c;
答案 1 :(得分:1)
a + b * c
正在评估为a + (b * c)
您需要的是(a + b) * c
优先顺序:括号>分部>乘法>添加>减法
在你的问题中,你说你得到1024.获得1024 不可能。你应该得到34.(在其他地方检查你的计算)
a + (b * c) = 10 + (10 * 2.4) = 34
答案 2 :(得分:1)
如果要在乘法前添加a到b,则需要使用括号。
那是因为乘法运算符的优先级高于加法运算符。
(a + b)* c
答案 3 :(得分:0)
$(document).ready(function() {
function compute() {
var a = $('#a').val();
var b = $('#b').val();
var c = $('#c').val();
var total = (parseInt(a,10) + parseInt(b,10)) * parseFloat(c); alert(total);
$('#total').val(total);
}
$('#a, #b, #c').change(compute);
});
答案 4 :(得分:0)
在解析值之后尝试: var total =(parseFloat(a)+ parseFloat(b))* parseFloat(c);
答案 5 :(得分:-2)
您的变量是字符串。使用parseFloat函数。
"10" + "10"*"2.4" = "10"+ 24 = "1024"