Fabricjs 克隆 canvas 从矩形中删除小数

Fabricjs cloning canvas removes decimals from rectangle

我有以下代码在 fabricjs 中克隆了一个 canvas:

 var canvas = new fabric.Canvas('c');    
 canvas.width = 644.51234567;
 canvas.height = 644.51234567;
 var rect = new fabric.Rect({
       left: 0,
       top: 0,
       width: canvas.width,
       height: canvas.height,
       fill: 'rgba(255,127,39,1)',
       strokeWidth: 0
    });
canvas.add(rect);        
canvas.renderAll();

canvas.clone(function(cloneCanvas) {    
  canvas.forEachObject(function(obj) {
    alert("Width of original rect: "+obj.width);
  }); 
  cloneCanvas.forEachObject(function(obj) {
    alert("Width of cloned rect: "+obj.width);
  });
});

https://jsfiddle.net/s35fxaby/8/

正如您在 运行 代码中看到的那样,克隆 canvas 会更改矩形上的小数位数。 这对我来说是个问题,因为我的其余代码取决于原件和副本的小数位数相同。

我能做些什么吗?比如防止克隆函数四舍五入?

使用NUM_FRACTION_DIGITS

fabric.Object.NUM_FRACTION_DIGITS = 10;

值 = 您希望小数点后的位数。

默认值为 2。