简介
Math类中提供了5个与取整相关的函数,如下所示:
static double ceil(double a):天花板函数,返回大于等于a的最小整数(但是以浮点数形式存储)。
static double floor(double a):地板函数,返回小于等于a的最大整数(但是以浮点数形式存储)。
static double rint(double a):四舍五入函数,返回与a的值最相近的整数(但是以浮点数形式存储)。
static long round(double a):四舍五入函数,返回与a的值最相近的长整型数。
static int round(float a):四舍五入函数,返回与a的值最相近的整型数。
示例
package net.xsoftlab.baike;
import java.util.Scanner;
public class Math_Round {
public static void main(String args[]) {
double num;
Scanner in = new Scanner(System.in);
System.out.print("请输入一个浮点数:");
num = in.nextDouble();
double cnum = Math.ceil(num);
System.out.println("大于" + num + "的最小数:" + cnum);
double fnum = Math.floor(num);
System.out.println("小于" + num + "的最大数:" + fnum);
double rnum = Math.rint(num);
System.out.println(num + "四舍五入得到浮点数:" + rnum);
long lnum = Math.round(num);
System.out.println(num + "四舍五入得到长整数:" + lnum);
}
}
一些比较大的数据可能用上边的方法就不是那个效果了,比如说:1.502157136399017E82。这个数据比较大,用以上方法实现出来的还是有“E”这个符号。那么就要用下边这个方法了。
double str = 1.502157136399017E82;
System.out.println(new DecimalFormat("#0.00").format(str));
效果图如下: