【发布时间】:2019-02-24 07:05:44
【问题描述】:
我想问如何将我的所有字符串转换为指数加倍。 当我使用长度超过七的字符串时,它做得很好。
new BigDecimal("12345678").doubleValue() => 1.2345678E7
但七岁及以下我无法导出指数数。
new BigDecimal("1234567").doubleValue() => 1234567.0
我想要的是 1.234567E6。
有没有办法做到这一点?找了好久,一无所获。
问题是我返回的类型必须是 double 。将值转换为七以下后,我只能得到没有指数的值。
double test = new BigDecimal("1.234567E6").doubleValue() ;//output 1234567.0
但我需要它是 1.234567E6 并返回给调用者。这不可能吗?
【问题讨论】:
-
什么意思?那只是格式化。 double 值不关心变成字符串时如何打印!
-
数字 1.2345678E7 与 12345678.0 相同。请注意,指数只是输出例程放在那里的东西(超过一定数量的有效数字,使用指数形式)。不管怎么显示,都是同一个数字。
-
@NathanHughes:如果需要双精度,doubleValue() 是正确的例程。 OP 说:“问题是我返回的类型必须是双精度的”。如果需要,双打也可以采用不同的格式。
标签: java double bigdecimal