java四舍五入 保留两位小数
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/07/15 09:06:16
java四舍五入 保留两位小数
x1=((double)(-b)+Math.sqrt((double)d))/(2*(double)a);
\x05\x05\x05 x2=((double)(-b)-Math.sqrt((double)d))/(2*(double)a);
\x05\x05\x05x1=Math.round(x1/0.01)*0.01;
\x05\x05\x05x2=Math.round(x2/0.01)*0.01;
a=21 b=89 c=35 为什么x1能输出-0.44 但是x2就会变成-3.80000000000003呢?
x1=((double)(-b)+Math.sqrt((double)d))/(2*(double)a);
\x05\x05\x05 x2=((double)(-b)-Math.sqrt((double)d))/(2*(double)a);
\x05\x05\x05x1=Math.round(x1/0.01)*0.01;
\x05\x05\x05x2=Math.round(x2/0.01)*0.01;
a=21 b=89 c=35 为什么x1能输出-0.44 但是x2就会变成-3.80000000000003呢?
![java四舍五入 保留两位小数](/uploads/image/z/6139467-27-7.jpg?t=java%E5%9B%9B%E8%88%8D%E4%BA%94%E5%85%A5+%E4%BF%9D%E7%95%99%E4%B8%A4%E4%BD%8D%E5%B0%8F%E6%95%B0)
因为double型小数部分会在从二进制变十进制的类型变换中产生误差,所以x2会变成-3.80000000000003,如果要使输出四舍五入 保留两位小数,可以用String的format函数,方法如下:
System.out.println(String.format("%.2f",x1));
System.out.println(String.format("%.2f",x2));
System.out.println(String.format("%.2f",x1));
System.out.println(String.format("%.2f",x2));