当前位置: 代码迷 >> J2SE >> 急求!Math类中round(double a)与round(float a)方法的不同,该如何解决
  详细解决方案

急求!Math类中round(double a)与round(float a)方法的不同,该如何解决

热度:52   发布时间:2016-04-24 01:08:00.0
急求!!!Math类中round(double a)与round(float a)方法的不同
public class Test2 {

/**
* @param args
*/
public static void main(String[] args) {
long x=(long) 12.5;
long y=(long) -12.5;
double m=12.5;
double n=-12.5;

System.out.println("x="+Math.round(x));  
System.out.println("y="+Math.round(y));
System.out.println("m="+Math.round(m));
System.out.println("n="+Math.round(n));

}

}

结果:
x=12
y=-12
m=13
n=-12

------解决方案--------------------
问题不是出在 round 上,而是你自己的问题。

long x=(long) 12.5; // 这里就已经丢失了0.5了,因为你强转了,long也是(长)整形,只能存储整数!
System.out.println(x); // 你用这句话看看是多少,必然是 12
  相关解决方案