当将double值0.9转换为long时,如何获得1?

时间:2014-02-06 17:46:03

标签: java casting

double0.9(或任何0.十进制)转换为长时间时如何获取1

目前它返回0.

由于

5 个答案:

答案 0 :(得分:5)

doublelong 的简单转换会截断数字 - 基本上丢弃小数点后的任何值(小数部分)。您可以使用Math.round(舍入到最接近的整数值),Math.floor(向下舍入)或Math.ceil(向上舍入)在转换前将其舍入。

您还可以在投射前添加0.5来自己舍入到最接近的整数。

答案 1 :(得分:0)

一个老式的普通C技巧只是添加.5并施放:)

int intValue = (int)(floatValue + 0.5f);

答案 2 :(得分:0)

使用此

int a = (int) Math.round(1.5);

方法round返回最接近的long或int,由方法返回类型给出。

答案 3 :(得分:0)

首先使用Math.ceil

(long) Math.ceil(x);

答案 4 :(得分:0)

您可以在投射前致电Math.ceil()

double val = 0.9;
long longValue = (long) Math.ceil ( val );