我试图通过序列化Double
来挤出一些性能。
我认为如果一个double可以存储在byte
,int
或float
中(这样就没有精度损失),我可以存储更少的字节。
目前,我可以像这样测试int
和byte
:
if (doubleValue == null) {
storeEmpty();
} else {
if ((doubleValue % 1) == 0) //we have no fraction
{
if (doubleValue > Byte.MIN_VALUE && doubleValue < Byte.MAX_VALUE) {
storeByte(doubleValue.byteValue());
} else if (doubleValue > Integer.MIN_VALUE && doubleValue < Integer.MAX_VALUE) {
storeInt(doubleValue.intValue());
} else {
storeDouble(doubleValue);
}
} else {
storeDouble(doubleValue);
}
}
如果double
属于float
精度范围,是否有测试技巧?