假设我有double x
。我会返回最近的整数x
。例如:
x = 6.001
我会返回6
x = 5.999
我会返回6
我想我应该使用Math.ceil
和Math.floor
函数。但我不知道如何返回最近的整数...
答案 0 :(得分:10)
对于您的示例,您似乎想要使用Math.rint()
。它将返回给定double
的最接近的整数值。
int valueX = (int) Math.rint(x);
int valueY = (int) Math.rint(y);
答案 1 :(得分:2)
public static void main(String[] args) {
double x = 6.001;
double y = 5.999;
System.out.println(Math.round(x)); //outputs 6
System.out.println(Math.round(y)); //outputs 6
}
答案 2 :(得分:1)
int a = (int) Math.round(doubleVar);
这将围绕它并将其转换为int。
答案 3 :(得分:0)
您在大多数基础计算机科学课程中学到的最简单的方法可能是add 0.5
(或者,如果你的双倍数低于0,则减去它),然后将其强制转换为int
。
// for the simple case
double someDouble = 6.0001;
int someInt = (int) (someDouble + 0.5);
// negative case
double negativeDouble = -5.6;
int negativeInt = (int) (negativeDouble - 0.5);
// general case
double unknownDouble = (Math.random() - 0.5) * 10;
int unknownInt = (int) (unknownDouble + (unknownDouble < 0? -0.5 : 0.5));
答案 4 :(得分:0)
System.out.print(Math.round(totalCost));
简单
答案 5 :(得分:0)
Math.round() Java 中的方法根据参数返回封闭的 int 或 long
Math.round(0.48) = 0
Math.round(85.6) = 86
同样,
Math.ceil 根据参数给出最小的整数。
Math.round(0.48) = 0
Math.round(85.6) = 85
Math.floor 根据参数给出最大的整数。
Math.round(0.48) = 1
Math.round(85.6) = 86