如何将numberGrade的值向上调整,如果它是89.5则调至90. numberGrade是以double形式提取的,但是使其成为int不会使其向上或向下四舍五入。Java四舍五入
public class GradeReporter
{
// The limit is the inclusive lower limit for each letter
// grade -- this means that 89.5 is an 'A' not a 'B'
public static final double A_LIMIT = 90;
public static final double B_LIMIT = 80;
public static final double C_LIMIT = 70;
public static final double D_LIMIT = 60;
public static final double F_LIMIT = 60;
/** Converts a numeric grade into a letter grade. Grades should be rounded to
* nearest whole number
*
* @param a numeric grade in the range of 0 to 100
* @returns a letter grade based on the numeric grade, possible grades are A, B, C, D and F.
*/
public char letterGrade(double numberGrade)
{
int grade = int(numberGrade);
if (grade >= A_LIMIT)
letterGrade = 'A';
else if (grade >= B_LIMIT)
letterGrade = 'B';
else if (grade >= C_LIMIT)
letterGrade = 'C';
else if (grade >= D_LIMIT)
letterGrade = 'D';
else if (grade < F_LIMIT)//4
letterGrade = 'F';
return letterGrade;
}
而且,对于完整性,Math.floor(numberGrade)将基本垂耳关小数。也就是说,它总是向上/向下/到最接近的整数。 – poundifdef 2010-09-14 02:33:50
请使用BigInteger四舍五入 – 2010-09-14 09:09:32
@Suresh S - 我假设你的意思是BigDecimal,而不是BigInteger。为什么在这种情况下BigDecimal应该用于四舍五入? – Jeff 2010-09-14 12:26:58