我正在尝试对11.000 + 5.000
做一个非常简单的计算,期望它有16.000
,然后将其除以2
,期望得到8.000
的最终结果。可以用另一种语言(ahk)正常运行,但是我在javascript中尝试(不是数字,5.5和5.50025)有意外结果
我应该如何编写此计算以获得8.000的预期结果?
var A = "11.000";
var B = "5.000";
//1st try
var resultA = (A + B) / 2;
alert(resultA);
//2nd try
var resultB = parseInt(A + B) / 2;
alert(resultB);
//3nd try
var resultC = parseFloat(A + B) / 2;
alert(resultC);
//expected = 8.000
答案 0 :(得分:2)
这里A + B
实际上是在进行字符串缩编,而不是简单的加法。您需要先将其更改为数字
var A = "11.000";
var B = "5.000";
var resultA = ((+A) + (+B)) / 2;
console.log(resultA);
// You can use toFixed if you three decimal digit
console.log(resultA.toFixed(3));
答案 1 :(得分:1)
此处A和B为字符串格式,一旦执行A + B,结果将为“ 11.000” +“ 5.000” =“ 11.0005.000”(字符串串联)。因此,要获得预期的结果,您应该将每个字符串值解析为Float / Int,然后执行加法运算。
尝试var resultD = (parseFloat(A) + parseFloat(B)) /2
答案 2 :(得分:0)
只需删除引号,变量将被识别为数字而不是字符串,因此您将获得预期的结果。
var A = 11.000;
var B = 5.000;
//1st try
var resultA = (A + B) / 2;
alert(resultA);
//2nd try
var resultB = parseInt(A + B) / 2;
alert(resultB);
//3nd try
var resultC = parseFloat(A + B) / 2;
alert(resultC);
//expected = 8.000