用法:需要加 Math. 进行调用。
另:
【浮点数取整函数】
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的值最相近的整型数。
【关于ceil()函数的使用】
洛谷:P5709 【深基2.习6】Apples Prologue(吃苹果)
下面代码中使用ceil的那个地方,注意括号内两个整数相除要(被除数*1.0) 保留小数部分,否则会对ceil向上取整的结果产生影响。
package test;
import java.io.*;
import java.util.*;
public class Main {
public static void main(String args[]) throws Exception {
Scanner sc = new Scanner(System.in);
int m = sc.nextInt(); // 苹果数
int t = sc.nextInt(); // 吃每个苹果用时
int s = sc.nextInt(); // 已知吃的总时长
int ans;
double eated;
if(t==0) {
System.out.print(0);
}
else if(s==0) {
System.out.print(0);
}
else {
eated = Math.ceil(s*1.0/t); // !!!此处如果不加*1.0括号内就变成整数结果了(略去小数点后部分,会对ceil向上取整产生影响)
// double ceil(double a):天花板函数,返回大于等于a的最小整数(但是以浮点数形式存储)
ans=m-(int)eated;
// 有坑!
if(ans<=0) { // 如果按理想吃法吃得只剩负数,说明早已吃完
System.out.print(0);
}
else {
System.out.print(ans);
}
}
}
}
/*
* 本题是挖坑让人跳,“已知已经过去了多长时间”并不是“吃这些花了多长时间”,还包括吃完后啥都没干的时间!
* */