double pr =0.056;
BigDecimal bd=new BigDecimal(Double.toString(pr));
bd.setScale(2,BigDecimal.ROUND_HALF_UP);
System.out.println(bd.doubleValue()); //0.056
double pr =0.056;
BigDecimal bd=new BigDecimal(Double.toString(pr)).setScale(2,BigDecimal.ROUND_HALF_UP);
System.out.println(bd.doubleValue());//0.06这两个有什么区别吗?我看着都一样
解决方案 »
- 关于 java.beans.PropertyDescriptor.getWriteMethod()
- jframe上怎么样能够加上背景图片
- 标识符…………
- 怎样使JTable的标题栏上的按钮可以点击
- 怎么样在 .NET 下做一个程序,让这个程序做这样的一件事: 24小时检测公司的防火墙是不是死掉,如果死掉就调用 DEPLHI平台下编译的短信平
- 这么简单的程序,我不明白错在哪了,电脑就是运行不了,哪位高人帮忙解决!
- Castor JDO的中文问题,zip中文问题.解决在送满分!!!
- 新年贺礼:提供某重要人物的C盘文件
- Server and Client!
- java 2 sdk 装好后为什么只有java 2 sdk readme.html
- sql查询语句的问题
- java如何用图片填充不规则图形?
第一个也有 bd.setScale(2,BigDecimal.ROUND_HALF_UP);
import java.math.BigDecimal;
public class BigDecimalTest {
public static void main(String[] args) {
double pr =0.056;
BigDecimal bd=new BigDecimal(Double.toString(pr));
bd.setScale(2,BigDecimal.ROUND_HALF_UP);
System.out.println(bd.doubleValue()); //0.056
double pr1 =0.056;
BigDecimal bd1=new BigDecimal(Double.toString(pr)).setScale(2,BigDecimal.ROUND_HALF_UP);
System.out.println(bd.doubleValue());//0.06 }
}
/*
0.056
0.056
*/
声明JDK1.5,难道是愚人节的缘故???
是返回一个新的BigDecimal 而不是对bd进行修改
public static void main(String[] args) {
double pr = 0.056;
BigDecimal bd = new BigDecimal(Double.toString(pr));
System.out.println(bd.doubleValue());
bd.setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println(bd.doubleValue());
bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println(bd.doubleValue());
}
}
/*
0.056
0.056
0.06
*/
return this;
同时还要注意下这个如果 scale参数与bd的一样的话 会直接返回bd