将double
值0.9
(或任何0.十进制)转换为长时间时如何获取1
?
目前它返回0.
由于
答案 0 :(得分:5)
从double
到long
的简单转换会截断数字 - 基本上丢弃小数点后的任何值(小数部分)。您可以使用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 );