我想要一个数字变量,其中包含具有纳秒精度的整数。我试过这个:
Instant t = Instant.now();
a = BigDecimal.valueof(t.getEpochSecond() * 1e9 + t.getNano());
b = BigDecimal.valueof(t.getEpochSecond() * 1e9 + t.getNano() + 1);
两者a
和b
都包含相同的值(例如 1.60681511777265408E+18),+1操作在这里丢失。
知道如何处理这种精度吗?它的目标是为 InfluxDB 中的时间列保留纳秒精度的时间戳。我知道它与双精度(Java BigDecimal 差异)有关,但我还没有找到任何可行的解决方案。