「java的四舍五入函数」编写一个四舍五入的函数
今天给各位分享java的四舍五入函数的知识,其中也会对编写一个四舍五入的函数进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、Java几种常见的四舍五入的方法
- 2、Java如何实现四舍五入运算?
- 3、java如何做到四舍五入
- 4、怎样用java实现小数的四舍五入?
- 5、java代码实现四舍五入的方式
- 6、java 四舍五入
Java几种常见的四舍五入的方法
下面给你介绍3种常见的四舍五入:
// 方式一:BigDecimal方式
double f = 3.1315;
BigDecimal b = new BigDecimal(new Double(f).toString);
double f1 = b.setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
注意:这里一定不要直接使用new BigDecimal(double)的构造方法,而要使用new BigDecimal(new Double(1.1315).toString())的方式,不然会出现精确问题
// 方式二:DecimalFormat方式
//DecimalFormat默认采用了RoundingMode.HALF_EVEN这种类型,而且format之后的结果是一个字符串类型String
DecimalFormat df = new DecimalFormat("#.000");
System.out.println(df.format(new BigDecimal(1.0145)));//1.014
System.out.println(df.format(new BigDecimal(1.1315)));//1.132
// 方式三:
double d = 3.1415926;
String result = String.format("%.2f", d);
// %.2f %. 表示 小数点前任意位数 2 表示两位小数 格式后的结果为f 表示浮点型。
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实现小数的四舍五入?
编程上四舍五入一般都是通过加一个小数看是否自动进1来完成的。
打个比方12.563,要求保留两个小数,四舍五入,则可以这样做:
第一步:12.563+0.005=12.568
第二步:12.568*100=1256.8
第三步:对1256.8强制转换为int类型(int)(1256.8)=1256
第四步:得出结果(double)(1256)/100=12.56
结果就是12.563保留两个小数并四舍五入的结果为12.56
不同的变成语言也行写法上不一样,但总体的理论是一样的。
java代码实现四舍五入的方式
如果你是用来交差的,可以再声明让我们贴代码,如果你是学习的,那么就探讨一下
1.四舍五入时可以用到int类型,它的得到的是整数,舍弃小数部分。
2.动脑筋想一些小办法,四舍五入可以自己写方法,不必用到API。
我们知道所谓四舍五入,就是满5进一,假设这个数为A,若无法进一,那么他减去0.5,必然小于该数。能进一,必然大于等于该数。那么可不可以用下面的方法?
private int fun(double d) {
int b = (int) d;
if(d - 0.5 = b){
b++;
return b;
}
else
return b;
}
使用时调用就行了,如system.out(类实例.fun(5.2));
抛砖引玉,欢迎赐教(这个方法只是基本实现,其他提问人慢慢摸索吧)
直接方法:math.round();取离数值最近值
java 四舍五入
199999.00*0.015=2999.984999....
所以想输出2999.99
必须这样
先把49变成5
然后才能四舍五入
System.out.println(new java.math.BigDecimal(new Double(199999.00*0.015)).setScale(3,java.math.BigDecimal.ROUND_HALF_UP).setScale(2,java.math.BigDecimal.ROUND_HALF_UP).doubleValue());
关于java的四舍五入函数和编写一个四舍五入的函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-26,除非注明,否则均为
原创文章,转载请注明出处。