Java 浮动格式

Java Floats formatting

有e.x 2.52549856E8个浮点数。

我要的就是简单的做出来25.2549856E8,仅此而已,其他的都可以留下。

我寻求解决方案,但我发现的只是一堆字符串示例。

我得到了纯浮点数。我应该先把它转换成字符串吗?有更简单的方法吗?

如果你只想将点向右移动一位,你可以使用下面的代码片段,它使用 String#substring()String 切割成正确的部分,然后再次连接它们:

String number = String.valueOf(2.52549856E8f);
int index = number.indexOf('.');
String formatted = 
    number.substring(0, index) + 
    number.substring(index + 1, index + 2) + 
    '.' + 
    number.substring(index + 2);
  1. number.substring(0, index) 删除第一个数字
  2. number.substring(index + 1, index + 2) 去掉第二个数字
  3. '.' 插入新点
  4. number.substring(index + 2) 附加数字的其余部分

同样可以用正则表达式来完成:

String number = String.valueOf(2.52549856E8f);
String formatted = number.replaceAll("^(\d)\.(\d)(\d+E\d+)$", ".");