java - 我什么时候应该使用 Double.longBitsToDouble(...) 而不是简单地将 long 转换为 double ?

标签 java casting type-conversion primitive-types

我有一个 double 值数组,其中最后一个值实际上是一个很长的表示时间(以毫秒为单位)。因此,需要将这个 long 转换为 double 以适合数组。稍后在检索此 long 值时,需要将其转换回 long 类型。至关重要的是,从 double 组中检索后的 long 值与将其放入数组之前的值完全相同(低至一毫秒)。在数组中时,不会对 long 值执行任何操作。所以问题是:
我是否应该简单地将 long 值转换为 double 并在检索时将其转换回 long ?这会保留我的多头的确切值(value)吗? 或者我应该使用 Double.longBitsToDouble(time) 方法将 long 放入数组中并使用 Double.doubleToLongBits(time) 检索它。 或者也许我应该使用 Double.longBitsToDouble(time) 将 long 值放入数组中,并通过简单地将其转换为 long 类型来检索编码的 long ?
预先感谢您的帮助。

最佳答案

我的意思是,您应该做的是使用数组来表示含义不同的值......

但是从听起来的情况来看,您别无选择,只能使用 Double.longBitsToDouble,因为 double 无法为您提供所有 long< 的完整精度。/值。仅将 long 转换为 double 就会丢失精度。

关于java - 我什么时候应该使用 Double.longBitsToDouble(...) 而不是简单地将 long 转换为 double ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11022487/

相关文章:

java - 选择特定 JComboBox 项时如何向 JPanel 添加附加 JButton

java - 用户如何从随机数中进行加法?

c++ - const_cast 转换为左值引用不会删除常量

python - 计算校验和时出现问题 : casting int to signed int32

r - 将变量从字符转换为数字,但不包括一个字符变量

java - 在 jpql select 中指定列会导致转换错误

java - 如何在 Eclipse Debug模式下转到函数调用

c# - 将类型转换为通用约束 T

c++ - 将 float 转换为 int,有和没有转换

c++ - 在 C++ 中附加到缓冲区