java小数四舍五入
㈠ 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舍)。昆明电脑培训http://www.kmbdqn.cn/建议在这里5是要舍弃的。
7、HAIL_EVEN:银行家舍入法。
㈡ Java 如何将string中的小数进行四舍五入
java 小数四舍五入
答:import java.math.RoundingMode;import java.text.NumberFormat;public class Snippet {public static void main(String[] args) {double x= 1.9999998;NumberFormat nf = NumberFormat.getInstance();nf.setRoundingMode(RoundingMode.HALF_UP)...
java如何取小数点前两位,并四舍五入
答:取小数点前两位,并四舍五入:double m=7237.3589一、DecimalFormat df = new DecimalFormat("#.00");System.out.println(df.format(m));二、System.out.println(String.format("%.2f", m));
如何把java得出的数值,保留小数点2位四舍五入
答:// 方式一: double f = 3.1516; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); // 方式二: new java.text.DecimalFormat("#.00").format(3.1415926); // #.00 表示两位小数 #.0000...
java中保留两位小数并要求四舍五入的方法
答:double d=2.345;//格式化为StringString str=String.format("%.2f",d);System.out.println(str);//如果需要数字,可以再d = Double.parseDouble(str)//////////////BigDecimal bd=new BigDecimal("2.345");//建议使用String参数BigDecimal bd_hal...
怎样用java实现小数的四舍五入
答:public static int round(float a) 返回最接近参数的 int。结果将舍入为整数:加上 1/2,对结果调用 floor 并将所得结果强制转换为 int 类型。换句话说,结果等于以下表达式的值: (int)Math.floor(a + 0.5f)
㈢ 怎样用java实现小数的四舍五入
我喜欢用 一个小数加上0.5,这样改五入的就进位了,该四舍的就没进位。
然后用一个Math.floor(a)就可以了
a是加过0.5厚的小数
㈣ java四舍五入的函数
java四舍五入的函数:Math.round
语法:
Math.round(x);
参数:
x 为一数值。
解释:
方法。返回对参数x四舍五入后所得的整数近似值。
例子:
public class MathTest {
public static void main(String[] args) {
System.out.println("小数点后第一位=5");
System.out.println("正数:Math.round(11.5)=" + Math.round(11.5));
System.out.println("负数:Math.round(-11.5)=" + Math.round(-11.5));
System.out.println();
System.out.println("小数点后第一位<5");
System.out.println("正数:Math.round(11.46)=" + Math.round(11.46));
System.out.println("负数:Math.round(-11.46)=" + Math.round(-11.46));
System.out.println();
System.out.println("小数点后第一位>5");
System.out.println("正数:Math.round(11.68)=" + Math.round(11.68));
System.out.println("负数:Math.round(-11.68)=" + Math.round(-11.68));
}
}
运行结果:
1、小数点后第一位=5
2、正数:Math.round(11.5)=12
3、负数:Math.round(-11.5)=-11
4、
5、小数点后第一位<5
6、正数:Math.round(11.46)=11
7、负数:Math.round(-11.46)=-11
8、
9、小数点后第一位>5
10、正数:Math.round(11.68)=12
11、负数:Math.round(-11.68)=-12
㈤ java中四舍五入保留两位小数,第三位正好是数字5怎么处理
使用String.format("镇空%.2f",num); //num是要处理的数据搜耐
这种方法可以用float,double接收数据类型,我试了一下String接收好像会报错,小伙伴也可以试一下。可以四舍五入保留两位小数,但是小数点第二位是0的话会不显示。以下代码用到此方法世旅春的语句:value.add(Double.valueOf ( String.format("%.2f", Double.valueOf(list.get(3).replace("\"", ""))*100)));
㈥ java中,强制转换符把float转换为int时,按四舍五入,还是直接丢掉小数部分
直接舍掉小数。
例如:
int 3.14,结果为
Int是将一个数值向下取整为最接近的整数的函数。INT是数据库中常用函数中的取整函数,常用来判别一个数能否被另一个数整除。
(6)java小数四舍五入扩展阅读:
int 函数使用的注意事项:
1、 语法int(number)其中number是需要进行向下舍入取整的实数。
2、 int函数是不进行四舍五入,直接去掉小数部分取整。
3、int函数处理负数的小数时总是向上进位的。