7

我有一个Double对象在转换为值时会丢失确切的long值。

Double d = 1.14*100

System.out.println(d.longValue());

上面的语句将打印 : 113

我想114被打印出来。

谢谢

4

4 回答 4

7

如果您需要使用的确切 114 值Math.round

double d = 1.14*100;
System.out.println(Math.round(d));
于 2013-11-08T20:55:38.113 回答
4

尝试这个

Long.parseLong( String.format( "%.0f",doublevalue ) ) ;
于 2013-11-08T20:54:45.353 回答
3

如果您正在寻找具有您期望的值的整数/长值表示,您可以使用这个:

Math.round(1.14 * 100)
于 2013-11-08T20:54:21.057 回答
1

首先,adouble准确。接下来,当将/转换为/时,小数部分被丢弃(不四舍五入)。doublefloatlongint

要获得最接近的值,您需要对其进行四舍五入

System.out.println(Math.round(d));
于 2013-11-08T20:52:19.023 回答