就是说两个float型的数据相加,其结果可能不是正确的结果,而是一个很接近正确值的结果
解决方案 »
- [求助]关于NullPointerEcxeption的问题
- 关于变量的作用域,菜鸟求解
- 遇到一个java麻烦的问题
- [急]添加监听后接收不到串口信息,怎么回事!
- 为什么这个程序不返回值?
- JForum怎么在框架外部获取SimpleHash
- 对数据库操作时,用户输入的信息里如果有单引号,到后台组sql语句执行时就会出错,?
- 关于多态和接口
- 在Linux底下安装了JDK怎么不能运行java命令啊??
- public static void main(String args[]){...},父类与子类同时定义有这样的main方法,但在子类中运行main时,程序却跑到父类的main中执
- Error: java.lang.ArrayIndexOutOfBoundsException,什么意思?如何解决?
- 我的程序没法运行?
JDK1.0.2 public class divers {
public static void main(String args[]){
divers d = new divers();
d.testRound();
} public void testRound(){
double r = round(3.1537, 2);
System.out.println(r); // output is 3.15
} double round(double value, int decimalPlace) {
double power_of_ten = 1;
while (decimalPlace-- > 0)
power_of_ten *= 10.0;
return Math.round(value * power_of_ten)
/ power_of_ten;
}
}
JDK1.1 import java.math.*;public class divers {
public static void main(String args[]){
divers d = new divers();
d.testRound();
} public void testRound(){
double r = 3.1537;
int decimalPlace = 2;
BigDecimal bd = new BigDecimal(r);
bd = bd.setScale(decimalPlace,BigDecimal.ROUND_HALF_UP);
r = bd.doubleValue();
System.out.println(r); // output is 3.15
}
}
有没有准确的方法,比如用double
两个float数你怎么比较都是不相等的
要想提高精确度,可以用java.math.BigDecimal试试