我在Java中使用Hadoop计数器,它只支持整数/长计数器类型,但我需要一个浮点计数器。我想知道有没有办法将浮点数存储到整数或长整型,然后从整数/长型恢复原始值而不会丢失精度?
答案 0 :(得分:5)
double
,那么 Double.doubleToLongBits
和Double.longBitsToDouble
应该可以做到。对{int} Float
有类似的方法。
答案 1 :(得分:2)
班级Float
提供您需要的方法:
int intValue = Float.floatToIntBits(floatValue);
int floatValue2 = Float.intToFloatBits(intValue)
// floatValue2 == floatValue
同样的方法也适用于双重类型(参见类Double
)