首页 > 解决方案 > Java 浮点数格式

问题描述

有前2.52549856E8浮点数。

我想要的只是简单地做到25.2549856E8,就是这样,其他一切都可以留下来。

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

我得到纯浮点数。我应该先将其转换为字符串吗?有没有更简单的方法来做到这一点?

标签: javaformattingdoublecomma

解决方案


如果您只想将点向右移动一位,您可以使用以下代码段,该代码段用于将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+)$", "$1$2.$3");

推荐阅读