有下列程序:
public class Dec {
public static void main (String arg[])
{
double b1=36.48;
double b2=5.51;
double b3=b1+b2 ;
System.out.println("b3 is "+b3);
}
}b3 的值为什么不是等于41.99
而是小数点后有很多位??
要怎么做才能让 36.48+5.51=41.99 ??
解决方案 »
- 请问一个 getParentFile() 与 getParent() 区别 的问题!!
- The source attachment doesnot contain the source for the file TrueTypeFont.class
- java 应用程序怎么连接sql server 2000数据库
- 请问ListIterator和Iterator有何区别!!
- 关于“无布局管理器”的一个小问题
- 已经有了MD5算法,如何调用才能加密我的jsp文件?
- 对arrayList由大到小排序??
- 命令行编译出错,好像是classpath得问题,各位达人帮忙看看
- 怎么判断字符串中只包含中文(不含英文 阿拉伯数字 和其他国外文字)
- JAVA(或JB6)怎样访问oracle9i中的“对象”“嵌套表”“变长数组”类型?急!!
- 小第初学java,在写一个applet小程序的时候出了点错,不知如何解决,请高手赐教,谢谢~~
- 2个版本的同名jar包,可以指定执行某一个版本的方法吗?
/**
* 由於Java的簡單類型不能夠精確的對浮點數進行運算,這個工具類提供精
* 確的浮點數運算,包括加減乘除和四捨五入。
*/
public class Arith{
//默認除法運算精度
private static final int DEF_DIV_SCALE = 10;
//這個類不能實例化
private Arith(){
}
/**
* 提供精確的加法運算。
* @param v1 被加數
* @param v2 加數
* @return 兩個參數的和
*/
public static double add(double v1,double v2){
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.add(b2).doubleValue();
}
}
试试看
public class BigDec {
public static void main (String arg[])
{ BigDecimal a1 = new BigDecimal(36.48);
BigDecimal a2 = new BigDecimal(5.51);
BigDecimal a3=a1.add(a2);
System.out.println( a3 ) ;
}
}
结果a3 还是小数点后有很多位, 那要怎么做 才能让 36.48+5.51=41.99 ??