Javascript KineticJs:使用int还是double?

Javascript KineticJs:使用int还是double?,javascript,html,kineticjs,Javascript,Html,Kineticjs,我使用KineticJS进行很多转换。例如: var baseX = pos.x; var baseY = pos.y; var w = self.getWidth(); var h = self.getHeight(); var halfW = w / 2; var halfH = h / 2; var aspectRadian = Math.atan2(halfH, halfW); 很快,整数变成了双数。那我该怎么处理呢?例如,当我必须设置一个矩形的位置时。我知道 rect.x(10);

我使用KineticJS进行很多转换。例如:

var baseX = pos.x;
var baseY = pos.y;
var w = self.getWidth();
var h = self.getHeight();
var halfW = w / 2;
var halfH = h / 2;
var aspectRadian = Math.atan2(halfH, halfW);
很快,整数变成了双数。那我该怎么处理呢?例如,当我必须设置一个矩形的位置时。我知道

rect.x(10);
由于没有半像素,以下内容没有任何意义:

rect.x(10.3);
我猜KineticJS会在内部进行舍入,或者可能是双倍数字


使用KineticJS时,使用整数还是双精度更好?一种或另一种解决方案是否会导致性能问题或舍入错误?我应该一直使用double以尽可能精确吗?

如果您只打算进行仅使用像素的计算,那么坚持使用float或double是可以的,除了轻微的抗锯齿之外,不应该产生任何问题,如果这对您来说是个问题的话。但是,如果你想将像素转换成不同的测量值,例如英寸,那么你可能会发现Javascript的浮点精度对你不利。

Javascript总是在内部使用浮点,KineticJS不舍入为整数。顺便说一句,实际上有半像素,你可以画一个x=10.50的矩形,它会出现在显示器的半像素边界上。建议:不要费心调整坐标。@markE那么,即使我以整数开头,我也应该始终使用double吗?JavaScript在内部将所有数字转换为float。因此,如果您提供一个int[例如parseInt20.22],那么仔细装箱的int将自动变成非常精确的float 20.000000001。所以不要费心做任何转换-