如何防止对齐以舍入 Flutter 中的 X 和 Y 值?



以下是代码:

double x = -1.0;
double y = 1.0;
final radians = angle * e / 180.0;
y = tan(radians) * x;
return Alignment(x, y);

然后当我打印出来时:

颤振:弧度:-0.09060951997193932
颤振:y:0.09085830765468121
颤动:x:-1.0
扑动:对准(-1.0,0.1(

您可以看到Alignment对象中的y值0.090858…被四舍五入为0.1,这使我失去了应用程序所需的精度。

如何确保对齐对象不会将我的数字四舍五入?我只希望y值保持为0.09085830765468121,而不是0.1。

感谢您的帮助!

精度不会丢失。

当您在dart中打印对象时,会调用对象的toString方法来获取对象的字符串表示,然后将其打印到控制台。

Alignment类的toString方法就是这个

...
return 'Alignment(${x.toStringAsFixed(1)}, '
'${y.toStringAsFixed(1)})';

到StringAsFixed文档说

结果是最接近的字符串表示,小数点后正好有[fractDigits]位。如果[小数位数]等于0,则省略小数点

如果您执行此

const y = 0.09085830765468121;
const x = -1.0;
print(Alignment(x, y).y);

输出如预期的0.09085830765468121

最新更新