将浮点数存储为long类型

时间:2013-11-08 15:50:32

标签: java hadoop

我在Java中使用Hadoop计数器,它只支持整数/长计数器类型,但我需要一个浮点计数器。我想知道有没有办法将浮点数存储到整数或长整型,然后从整数/长型恢复原始值而不会丢失精度?

2 个答案:

答案 0 :(得分:5)

如果它是double,那么

Double.doubleToLongBitsDouble.longBitsToDouble应该可以做到。对{int} Float有类似的方法。

答案 1 :(得分:2)

班级Float提供您需要的方法:

int intValue = Float.floatToIntBits(floatValue);
int floatValue2 = Float.intToFloatBits(intValue)
// floatValue2 == floatValue

同样的方法也适用于双重类型(参见类Double