本文目录一览:
- 1、怎样用java实现小数的四舍五入?
- 2、java如何做到四舍五入
- 3、java四舍五入的函数
- 4、java中小数怎么四舍五入?
- 5、Java几种常见的四舍五入的方法
- 6、java代码实现四舍五入的方式
怎样用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如何做到四舍五入
方法一:四舍五入
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四舍五入的函数
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程序如下
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.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代码实现四舍五入的方式
如果你是用来交差的,可以再声明让我们贴代码,如果你是学习的,那么就探讨一下
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();取离数值最近值