java舍入(java中四舍五入函数)
华为云服务器特价优惠火热进行中! 2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。
合作流程: |
本篇文章给大家谈谈java舍入,以及java中四舍五入函数对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
微信号:cloud7591如需了解更多,欢迎添加客服微信咨询。
复制微信号
本文目录一览:
- 1、Java中BigDecimal的8种舍入模式是怎样的
- 2、Java如何实现四舍五入运算?
- 3、java如何做到四舍五入
- 4、Java中BigDecimal的8种舍入模式是怎样的?
- 5、java中小数怎么四舍五入?
Java中BigDecimal的8种舍入模式是怎样的
1、ROUND_UP
舍入远离零的舍入模式。
在丢弃非零部分之前始终增加数字(始终对非零舍弃部分前面的数字加1)。
注意,此舍入模式始终不会减少计算值的大小。
2、ROUND_DOWN
接近零的舍入模式。
在丢弃某部分之前始终不增加数字(从不对舍弃部分前面的数字加1,即截短)。
注意,此舍入模式始终不会增加计算值的大小。
3、ROUND_CEILING
接近正无穷大的舍入模式。
如果 BigDecimal 为正,则舍入行为与 ROUND_UP 相同;
如果为负,则舍入行为与 ROUND_DOWN 相同。
注意,此舍入模式始终不会减少计算值。
4、ROUND_FLOOR
接近负无穷大的舍入模式。
如果 BigDecimal 为正,则舍入行为与 ROUND_DOWN 相同;
如果为负,则舍入行为与 ROUND_UP 相同。
注意,此舍入模式始终不会增加计算值。
5、ROUND_HALF_UP
向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为向上舍入的舍入模式。
如果舍弃部分 = 0.5,则舍入行为与 ROUND_UP 相同;否则舍入行为与 ROUND_DOWN 相同。
注意,这是我们大多数人在小学时就学过的舍入模式(四舍五入)。
6、ROUND_HALF_DOWN
向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为上舍入的舍入模式。
如果舍弃部分 0.5,则舍入行为与 ROUND_UP 相同;否则舍入行为与 ROUND_DOWN 相同(五舍六入)。
7、ROUND_HALF_EVEN
向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。
如果舍弃部分左边的数字为奇数,则舍入行为与 ROUND_HALF_UP 相同;
如果为偶数,则舍入行为与 。

Java如何实现四舍五入运算?
背景
最近接触银行项目,发现在做金额四舍五入的时候并没有传统意义上那么简单,银行为了尽量缩减在这方面的亏损,有一个单独的银行家舍入法。
传统的四舍五入运算
Math.round是在原来的数字的基础上+0.5然后向下取整。
银行家舍入法
舍去位的数值小于5时,直接舍去。
舍去位的数值大于5时,进位后舍去。
当舍去位的数值等于5时,若5后面还有其他非0数值,则进位后舍去,若5后面是0时,则根据5前一位数的奇偶性来判断,奇数进位,偶数舍去。
Java支持的四舍五入方式参数
1、ROUND_UP:远离零方向舍入。向绝对值最大的方向舍入,只要舍弃位非0即进位。
2、ROUND_DOWN:趋向零方向舍入。向绝对值最小的方向输入,所有的位都要舍弃,不存在进位情况。
3、ROUND_CEILING:向正无穷方向舍入。向正最大方向靠拢。若是正数,舍入行为类似于ROUND_UP,若为负数,舍入行为类似于ROUND_DOWN。Math.round()方法就是使用的此模式。
4、ROUND_FLOOR:向负无穷方向舍入。向负无穷方向靠拢。若是正数,舍入行为类似于ROUND_DOWN;若为负数,舍入行为类似于ROUND_UP。
5、HALF_UP:最近数字舍入(5进)。这是我们最经典的四舍五入。
6、HALF_DOWN:最近数字舍入(5舍)。昆明电脑培训建议在这里5是要舍弃的。
7、HAIL_EVEN:银行家舍入法。
java如何做到四舍五入
方法一:四舍五入
double f = 111231.5585;
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(2, RoundingMode.HALF_UP).doubleValue();
方式二:
java.text.DecimalFormat df = new java.text.DecimalFormat("#.00");
df.format(你要格式化的数字);
方式三:
double d = 3.1415926;
String result = String .format("%.2f");
注意:%.2f %. 表示 小数点前任意位数 2 表示两位小数 格式后的结果为f 表示浮点型。
方式四:
此外如果使用struts标签做输出的话,有个format属性,设置为format="0.00"就是保留两位小数例如:
fmt:formatNumber type="number" value="${10000.22/100}" maxFractionDigits="0"/
Java中BigDecimal的8种舍入模式是怎样的?
不可变的、任意精度的有符号十进制数。BigDecimal 由任意精度的整数非标度值和32位的整数标度(scale)组成。\x0d\x0a在银行、帐户、计费等领域,BigDecimal提供了精确的数值计算。其中8种舍入方式值得掌握。\x0d\x0a1、ROUND_UP\x0d\x0a舍入远离零的舍入模式。\x0d\x0a在丢弃非零部分之前始终增加数字(始终对非零舍弃部分前面的数字加1)。\x0d\x0a注意,此舍入模式始终不会减少计算值的大小。\x0d\x0a2、ROUND_DOWN\x0d\x0a接近零的舍入模式。\x0d\x0a在丢弃某部分之前始终不增加数字(从不对舍弃部分前面的数字加1,即截短)。\x0d\x0a注意,此舍入模式始终不会增加计算值的大小。\x0d\x0a3、ROUND_CEILING\x0d\x0a接近正无穷大的舍入模式。\x0d\x0a如果 BigDecimal 为正,则舍入行为与 ROUND_UP 相同;\x0d\x0a如果为负,则舍入行为与 ROUND_DOWN 相同。\x0d\x0a注意,此舍入模式始终不会减少计算值。\x0d\x0a4、ROUND_FLOOR\x0d\x0a接近负无穷大的舍入模式。\x0d\x0a如果 BigDecimal 为正,则舍入行为与 ROUND_DOWN 相同;\x0d\x0a如果为负,则舍入行为与 ROUND_UP 相同。\x0d\x0a注意,此舍入模式始终不会增加计算值。\x0d\x0a5、ROUND_HALF_UP\x0d\x0a向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为向上舍入的舍入模式。\x0d\x0a如果舍弃部分 = 0.5,则舍入行为与 ROUND_UP 相同;否则舍入行为与 ROUND_DOWN 相同。\x0d\x0a注意,这是我们大多数人在小学时就学过的舍入模式(四舍五入)。\x0d\x0a6、ROUND_HALF_DOWN\x0d\x0a向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为上舍入的舍入模式。\x0d\x0a如果舍弃部分 0.5,则舍入行为与 ROUND_UP 相同;否则舍入行为与 ROUND_DOWN 相同(五舍六入)。\x0d\x0a7、ROUND_HALF_EVEN\x0d\x0a向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。\x0d\x0a如果舍弃部分左边的数字为奇数,则舍入行为与 ROUND_HALF_UP 相同;\x0d\x0a如果为偶数,则舍入行为与 ROUND_HALF_DOWN 相同。\x0d\x0a注意,在重复进行一系列计算时,此舍入模式可以将累加错误减到最小。\x0d\x0a此舍入模式也称为“银行家舍入法”,主要在美国使用。四舍六入,五分两种情况。\x0d\x0a如果前一位为奇数,则入位,否则舍去。\x0d\x0a以下例子为保留小数点1位,那么这种舍入方式下的结果。\x0d\x0a1.151.2 1.251.2\x0d\x0a8、ROUND_UNNECESSARY\x0d\x0a断言请求的操作具有精确的结果,因此不需要舍入。
java中小数怎么四舍五入?
按照你的要求为不确定保留几位小数的字符串做四舍五入的Java程序如下
import java.math.BigDecimal;
public class A {
public static void main(String[] args) {
String s="0.00000999999997";
//四舍五入,length是小数位数
int length=s.substring(s.indexOf(".")+1).length();
String s1=String.format("%."+(length-1)+"f",new BigDecimal(s));
//去尾部0
BigDecimal bd=new BigDecimal(s1).stripTrailingZeros();
System.out.println(bd.toPlainString());
}
}
关于java舍入和java中四舍五入函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
