我正在使用一个使用毫米和英寸来绘制缩放图纸的应用程序。我需要在不丢失精度的情况下从一个转换到另一个。我正在为准确性而苦苦挣扎,并转向了 Apfloat 包。有人可以解释一下...如果我从 100 毫米开始,将其转换为英寸,然后再返回到毫米,为什么我会失去精度?
public static void main(String[] args) {
Apint mm = new Apint(100);
System.out.println("mm = " + mm);
// 25.4mm in 1 inch
Apfloat toInches = new Apfloat("25.4");
// 100mm / 25.4 = x-Inches
Apfloat inches = mm.divide(toInches);
System.out.println("mm - > Inch = " + inches);
// x-Inches x 25.4 = 100mm
Apfloat backToMm = inches.multiply(toInches);
System.out.println("Inch - > mm = " + backToMm);
}
输出:
mm = 100
mm - > Inch = 3.93
Inch - > mm = 9.99e1
无论我设置多大的精度属性,我仍然会得到重复出现的 9.999 ......