如何正确计算 Javascript 中的浮点数?

How do I get a right computation for floating numbers in Javascript?

我正在学习 Javascript,我正在解决一个涉及使用浮点数进行数学计算的问题。我听说 Javascript 在处理浮点数时很奇怪,但当我看到它的影响如此动态时,我感到很惊讶。我应该怎么做才能得到正确的答案?我需要知道什么才能防止我以后的计算出现这个错误?感谢您的帮助,也感谢您的宝贵时间。

var merge = function(array1, array2, callback) {
var result = [];
for (var i = 0; i < array1.length; i++) {
    result.push(callback(array1[i], array2[i]));
}
return result;
};

var euclid = function(coords1, coords2) {
var myCoords = merge(coords1, coords2, function(a, b){
    return a - b;
});
return Math.sqrt(myCoords[0]^2 + myCoords[1]^2);
};

var x = euclid([1.2, 3.67], [2.0, 4.4]);

// x should now equal approximately 1.08

But instead I got:

euclid([1.2, 3.67], [2.0, 4.4]);
// -> 1.7320508075688772

如果你想求一个数的平方,那不是 x^2 - 那是按位的 xor

你需要Math.pow(x, 2).