「java小数四舍五入」java小数转换为整数 四舍五入

博主:adminadmin 2023-01-08 19:15:11 1216

今天给各位分享java小数四舍五入的知识,其中也会对java小数转换为整数 四舍五入进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

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中四舍五入保留两位小数,第三位正好是数字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几种常见的四舍五入的方法

下面给你介绍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如何做到四舍五入

方法一:四舍五入

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如何实现四舍五入运算?

背景

最近接触银行项目,发现在做金额四舍五入的时候并没有传统意义上那么简单,银行为了尽量缩减在这方面的亏损,有一个单独的银行家舍入法。

传统的四舍五入运算

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

按照你的要求为不确定保留几位小数的字符串做四舍五入的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小数转换为整数 四舍五入的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。