java中返回类型为 double( )的方法体定义为 return 3.14*r*r,结果却得到了32.15360095825196半径为3.2f,面积和周长得到多余的精度,但是半径为5.5f,这是为什么-------------------------------------------------------
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/21 20:11:47
![java中返回类型为 double( )的方法体定义为 return 3.14*r*r,结果却得到了32.15360095825196半径为3.2f,面积和周长得到多余的精度,但是半径为5.5f,这是为什么-------------------------------------------------------](/uploads/image/z/14730115-67-5.jpg?t=java%E4%B8%AD%E8%BF%94%E5%9B%9E%E7%B1%BB%E5%9E%8B%E4%B8%BA+double%EF%BC%88+%EF%BC%89%E7%9A%84%E6%96%B9%E6%B3%95%E4%BD%93%E5%AE%9A%E4%B9%89%E4%B8%BA+return+3.14%2Ar%2Ar%2C%E7%BB%93%E6%9E%9C%E5%8D%B4%E5%BE%97%E5%88%B0%E4%BA%8632.15360095825196%E5%8D%8A%E5%BE%84%E4%B8%BA3.2f%2C%E9%9D%A2%E7%A7%AF%E5%92%8C%E5%91%A8%E9%95%BF%E5%BE%97%E5%88%B0%E5%A4%9A%E4%BD%99%E7%9A%84%E7%B2%BE%E5%BA%A6%2C%E4%BD%86%E6%98%AF%E5%8D%8A%E5%BE%84%E4%B8%BA5.5f%2C%E8%BF%99%E6%98%AF%E4%B8%BA%E4%BB%80%E4%B9%88-------------------------------------------------------)
java中返回类型为 double( )的方法体定义为 return 3.14*r*r,结果却得到了32.15360095825196半径为3.2f,面积和周长得到多余的精度,但是半径为5.5f,这是为什么-------------------------------------------------------
java中返回类型为 double( )的方法体定义为 return 3.14*r*r,结果却得到了32.15360095825196
半径为3.2f,面积和周长得到多余的精度,但是半径为5.5f,这是为什么
-------------------------------------------------------------
import java.math.*;
public class Circle
{
\x05private float r;
\x05Circle()
\x05{
\x05}
\x05Circle (float x)
\x05\x05{
\x05\x05r=x;
\x05\x05}
\x05public void set_value(float x)
\x05{
\x05\x05r=x;
\x05}
\x05public double mj()
\x05\x05{
\x05\x05return(3.14*r*r);
\x05\x05}
public double zc()
{
\x05 double y;
y=2*3.14*r;
return(y);
}
public static void main(String args[])
{ Circle ex1=new Circle();
ex1.set_value(3.2f);
System.out.println("面积="+ex1.mj()+"周长="+ex1.zc());
Circle ex2=new Circle(5.5f);
System.out.println("面积="+ex2.mj()+"周长="+ex2.zc());
}
}
-------------------------------------------------------------------------------
---------- java ----------
面积=32.15360095825196周长=20.096000299453735
面积=94.985周长=34.54
输出完成 (耗时 0 秒) - 正常终止
java中返回类型为 double( )的方法体定义为 return 3.14*r*r,结果却得到了32.15360095825196半径为3.2f,面积和周长得到多余的精度,但是半径为5.5f,这是为什么-------------------------------------------------------
二进制的精度问题,你可以试下System.out.println(1-0.9);是多少……