java四舍五入(java四舍五入保留两位小数)

更新时间:2023-03-01 19:23:58 阅读: 评论:0

北大青鸟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中小数怎么四舍五入?

按照你的要求为不确定保留几位小数的字符串做四舍五入的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几种常见的四舍五入的方法

下面给你介绍3种常见的四舍五入:

// 方式一:BigDecimal方式

double f = 3.1315;

BigDecimal b = new BigDecimal(new Double(f).toString);

double f1 = b.tScale(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四舍五入的函数

    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实现小数的四舍五入?

编程上四舍五入一般都是通过加一个小数看是否自动进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;
}
el
return b;
}

使用时调用就行了,如system.out(类实例.fun(5.2));
抛砖引玉,欢迎赐教(这个方法只是基本实现,其他提问人慢慢摸索吧)
直接方法:math.round();取离数值最近值

本文发布于:2023-02-28 20:19:00,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/167766983881385.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:java四舍五入(java四舍五入保留两位小数).doc

本文 PDF 下载地址:java四舍五入(java四舍五入保留两位小数).pdf

标签:四舍五入   两位   小数   java
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|