四舍五入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怎么将double四舍五入
// 新方手迟法,如果不需要四舍五入毕稿李,可以使用敬瞎RoundingMode.DOWN
BigDecimal bg = new BigDecimal(d).setScale(2, RoundingMode.UP);
return bg.doubleValue();
}
public static String formatDouble3(double d) {
NumberFormat nf = NumberFormat.getNumberInstance();
// 保留两位小数
㈣ 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实现数字的四舍五入并返回指定小数位数
import java.math.RoundingMode;import java.text.NumberFormat;class T { public static void main(String[] args) { System.out.println(function2(123.455, 2)); System.out.println(function2(123.449, 2)); System.out.println(function2(123.44, 3)); System.out.println(function2(123.4455, 3)); System.out.println(function2(123.4499, 3)); System.out.println(function2(123.9, 0)); } public static double function2(double value, int decimalPlaces) { NumberFormat nf = NumberFormat.getNumberInstance(); nf.setRoundingMode(RoundingMode.HALF_UP); // 四舍尘纯团五入派橘裤高 nf.setMaximumFractionDigits(decimalPlaces); nf.setMinimumFractionDigits(decimalPlaces); return Double.valueOf(nf.format(value)); }}
输出结果
123.46
123.45
123.44
123.446
123.45
124.0
㈥ 怎样用java实现小数的四舍五入
我喜欢用 一个小数加上0.5,这样改五入的就进位了,该四舍的就没进位。
然后用一个Math.floor(a)就可以了
a是加过0.5厚的小数
㈦ java 两个数相除后四舍五入并保留两位小数有哪些方式
1 double f = 3.1516;
BigDecimal b = new BigDecimal(f);
2 double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()
new java.text.DecimalFormat("#.00").format(3.1415926)
3 double d = 3.1415926;
String result = String.format("%.2f", d);
// %.2f %. 表示 小数点前任意位数 2 表示两位小数 格式后的结果为f 表示浮点型。
4 Math.round(5.2644555 * 100) * 0.01d;
//String.format("%0" + 15 + "d", 23) 23不足15为就在前面补0
㈧ 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中小数怎么四舍五入
java中如果精确一点的小数位比较多,类型建议使用BigDecimal,数据库存储用decimal类型。
.你的问题是想做四舍五入,并指定精确小数位数。BigDecimal..setScale(需要精确的小数位数例如:3, BigDecimal.ROUND_HALF_UP); 如图所示:如果想要确定小数位数,可以用正则取出需要精确的位数,再去传输需要精确的小数位数。
指定小数位数,并且都做四舍五入即可
㈩ java中,强制转换符把float转换为int时,按四舍五入,还是直接丢掉小数部分
直接舍掉小数。
例如:
int 3.14,结果为
Int是将一个数值向下取整为最接近的整数的函数。INT是数据库中常用函数中的取整函数,常用来判别一个数能否被另一个数整除。
(10)四舍五入java扩展阅读:
int 函数使用的注意事项:
1、 语法int(number)其中number是需要进行向下舍入取整的实数。
2、 int函数是不进行四舍五入,直接去掉小数部分取整。
3、int函数处理负数的小数时总是向上进位的。