Java将float转换为double并创建正确的格式

Java将float转换为double并创建正确的格式,java,Java,这很可能是一个简单的问题 我的时间戳有问题,表示为: 长时间戳:351802384172493 我需要将时间戳作为双精度传递,当我创建双精度时,它表示为: 双时间戳:3.15802384172493E14 我实际上需要以这种格式传递double: 双时间戳:315802.384172493 有没有最好的方法来实现这一点?用正确的因子除以long,将其转换为double long timestamp = 351802384172493L; double ts = timestamp / 1_

这很可能是一个简单的问题

我的时间戳有问题,表示为:

长时间戳:351802384172493

我需要将时间戳作为双精度传递,当我创建双精度时,它表示为:

双时间戳:3.15802384172493E14

我实际上需要以这种格式传递double:

双时间戳:315802.384172493


有没有最好的方法来实现这一点?

用正确的因子除以long,将其转换为double

long timestamp = 351802384172493L;   
double ts = timestamp / 1_000_000_000.0;

System.out.printf("%.9f\n", ts);
屈服

351802.384172493


long
double
都不包含任何有关格式的信息。你必须在打印时提供。所以。。。你把这段时间延长到双倍的原因是什么?谢谢,下面的答案很有用。非常感谢,我确实想知道是否还有其他方法,只需除以一个大数字,但它确实起到了作用。谢谢