以下是代码:
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
。