java中小数的四舍六入和四舍五入
2013-10-05 11:54
253 查看
四舍六入为比较科学的小数舍入,具体规则为:
// 四舍六入五考虑,
// 五后非零就进一,
// 五后为零看奇偶,
// 五前为偶应舍去,
// 五前为奇要进一。
一般情况下,很多程序设计语言是遵循这样的规则的,例如下面的java格式化小数:
NumberFormat numberFormat = newDecimalFormat("#0.##");
System.out.println(numberFormat.format(1.345));//1.34 五前为偶应舍去
System.out.println(numberFormat.format(1.3450001));//1.35 五后非零就进一
System.out.println(numberFormat.format(1.355));//1.36 五前为奇要进一
如果非要四舍五入怎么办,下面的方式也是可以满足要求的:
System.out.println( newBigDecimal("1.345").setScale(2, BigDecimal.ROUND_HALF_UP));//1.35
System.out.println( new BigDecimal("1.3450001").setScale(2,BigDecimal.ROUND_HALF_UP));//1.35
System.out.println(new BigDecimal("1.355").setScale(2, BigDecimal.ROUND_HALF_UP));//1.36
// 四舍六入五考虑,
// 五后非零就进一,
// 五后为零看奇偶,
// 五前为偶应舍去,
// 五前为奇要进一。
一般情况下,很多程序设计语言是遵循这样的规则的,例如下面的java格式化小数:
NumberFormat numberFormat = newDecimalFormat("#0.##");
System.out.println(numberFormat.format(1.345));//1.34 五前为偶应舍去
System.out.println(numberFormat.format(1.3450001));//1.35 五后非零就进一
System.out.println(numberFormat.format(1.355));//1.36 五前为奇要进一
如果非要四舍五入怎么办,下面的方式也是可以满足要求的:
System.out.println( newBigDecimal("1.345").setScale(2, BigDecimal.ROUND_HALF_UP));//1.35
System.out.println( new BigDecimal("1.3450001").setScale(2,BigDecimal.ROUND_HALF_UP));//1.35
System.out.println(new BigDecimal("1.355").setScale(2, BigDecimal.ROUND_HALF_UP));//1.36
相关文章推荐
- EClipse + NDK java.lang.NullPointerException 的解决方法
- 排序算法--插入排序
- 排序算法--选择排序
- 排序算法--冒泡排序
- 汉诺塔问题的算法分析与实现(Java)
- 判断101-200之间有多少个素数,并输出所有素数。
- 求最小公约数和最大公倍数
- 输入一串字符,判断英文字母,空格,数字及其他字符的个数
- 说下Fedora下把SpiderMonkey放入Eclipse内编译的过程
- 求a+aa+aaa+aaaa+...的值
- 让CPU占用率曲线听你指挥
- 自学v512工作室_刘伟_Java高端培训系列视频_log4j遇到的问题
- java 字符串倒叙
- java 汉字与ASCII码之间的转换
- spring(1)
- 编程之美--小飞--电梯调度算法 java实现
- java中常用的字符串的截取方法
- JAVA eclipse 问题汇总(持续更新)
- java客户端向服务端发post请求
- 用Struts2框架开发的菜鸟绝对能看得懂的用户登录程序(1)