为什么
DecimalFormat format = new DecimalFormat("0.0000");
String value = format.format(0.00505);
value 显示是 0.0050
而
DecimalFormat format = new DecimalFormat("0.00");
String value = format.format(0.00505);
value 显示是 0.01
DecimalFormat format = new DecimalFormat("0.0000");
String value = format.format(0.00505);
value 显示是 0.0050
而
DecimalFormat format = new DecimalFormat("0.00");
String value = format.format(0.00505);
value 显示是 0.01
解决方案 »
- javaweb 上传图片问题
- 严重: Dispatcher initialization failed
- hibernate 通过odbc连接teradata怎么连?
- MyEclipse中打开jsp 报错 提示Runtime Error!
- 关于新浪网股票实时数据问题.
- 关于commons-logging 和webshpere ,jboss等服务器的默认log发生冲突的问题
- 学习JAVA有那些个框架、结构
- 谁知道如何在redhat下text系统,安装oracle,高分求救!
- findByPrimaryKey出错,急救!!,困扰了我一整天了
- 表单查询中文异常,字母数字正常
- JAVA 如何获得MAC 地址??
- 跳转前加一个操作成功的对话框
DecimalFormat format = new DecimalFormat("0.00");
这两句话定义的format的格式不一样
第一个长度够。。
第二个不够,自动四舍五入了
你试试DecimalFormat format = new DecimalFormat("0.00");
String value = format.format(0.00405);是什么效果
String value = format.format(0.00500);
这里的value显示的则是0.00
似乎可以理解为
if(<=5){
舍;
}
else 入;
String value = format.format(0.00505);
value 显示是 0.0050那这个为什么不是四舍五入的???????????????
如果尾数<=最小精度值一半,则舍掉,如果尾数>最小精度值一半,则保留
DecimalFormat format1 = new DecimalFormat("0.0000");
String value1 = format1.format(0.00505);
String value2 = format1.format(0.005051);
System.out.println(value1);//输出0.0050
//因为给定格式截取小数点四位后,余数为0.00005
//会跟匹配格式最小精度0.0001的一半比较
//0.00005<=最小精度的一半,舍去
System.out.println(value2);//输出0.0051
//因为给定格式截取小数点四位后,余数为0.000051
//会跟匹配格式最小精度0.0001的一半比较
//0.000051>最小精度的一半,舍去
String value3 = format1.format(0.0050500001);
System.out.println(value3);//输出0.0051