我发布了我的代码。我不想要我的回答。例: 在第二栏中,它应该是65.574,而不是65.580。
public class Exercise_06_09 {
public static void main(String[] args) {
System.out.printf("%-15s%-15s| %-15s%-15s\n","Feet","Meters","Meters","Feet");
System.out.println( String.format("%62s"," ").replace(' ', '-'));
for (double m = 20, f = 1 ; f <=10; f++, m+=5) {
System.out.printf("%-15.1f%-15.3f| %-15.1f%-15.3f\n", f, footToMeter(f), m, meterToFoot(m));
}
}
//Convert from meter to foot
public static double meterToFoot(double meter) {
return 3.279 * meter;
}
//Convert from foot to meter
public static double footToMeter(double foot) {
return 0.305 * foot;
}
}
这是我得到的输出
1.0 0.305 | 20.0 65.580
2.0 0.610 | 25.0 81.975
3.0 0.915 | 30.0 98.370
4.0 1.220 | 35.0 114.765
5.0 1.525 | 40.0 131.160
6.0 1.830 | 45.0 147.555
7.0 2.135 | 50.0 163.950
8.0 2.440 | 55.0 180.345
9.0 2.745 | 60.0 196.740
10.0 3.050 | 65.0 213.135
答案 0 :(得分:1)
如果您不想舍入到某个数字,可以使用BigDecimal
课程。
使用类似:
BigDecimal bigDecimal = new BigDecimal(3.279 * meter);
您将获得以下输出: 65.5799999999999982946974341757595539093017578125
现在将值转换为String并获取子串,其中结束索引是小数点后的小数点后3位。
答案 1 :(得分:0)
你可以乘以10 ^ n(n是要保留的数字量),然后除去小数。也许把它作为一个int。然后再将它除以10 ^ n。