Java 删除点后无用的零

Java 删除点后无用的零,java,android,Java,Android,要删除点后无用的零,我使用以下方法 if (("" + unitValue).endsWith(".0")) { return String.format("%.0f %s", unitValue, unitFaName); } else if (unitValue < 0.001) { return String.format("%f %s", unitValue, unitFaName); } else { return String

要删除点后无用的零,我使用以下方法

if (("" + unitValue).endsWith(".0")) {
      return String.format("%.0f %s", unitValue, unitFaName);
    } else if (unitValue < 0.001) {
      return String.format("%f %s", unitValue, unitFaName);
    } else {
      return String.format("%s %s", String.valueOf(unitValue), unitFaName);
    }
但不能修改以下值:

但超过两个零后一点和前一点不能修改

1.0001000
1.0000100
... 
这就是为什么我使用以下条件来避免使用科学符号top number
(1.0001000,1.0000100)


我不能使用
Decimalformat
String,Format
,因为点后面的数字不是固定的数字

您要找的已经被回答了


你要找的已经被回答了


“”+unitValue
不要这样做。不要。你为什么不检查一下号码中是否有一个
?如果有,那么您就开始剥离尾随的零。如果没有,那么就没有什么可剥离的,否则您将执行
100->1
,它只会查找
1.0
,而不会查找
1.00
否。它正在检查
点零
,如果您的数字是
1.100
,则字符串不会以.0结尾,它以.100结尾。您可以使用
BigDecimal
stripTrailingZeros
方法。
“+unitValue
不要这样做。不要。你为什么不检查一下号码中是否有一个
?如果有,那么您就开始剥离尾随的零。如果没有,那么就没有什么可剥离的,否则您将执行
100->1
,它只会查找
1.0
,而不会查找
1.00
否。它正在检查
点零
,如果您的数字是
1.100
,则字符串不会以.0结尾,它以.100结尾。您可以使用
BigDecimal
stripTrailingZeros
方法。该链接中的第二个答案更好。其他人显然同意,因为它有更多的选票当问题已经在别处得到回答时,不要抄袭答案。以重复的方式结束这个问题。@Andreas这不是我现在能做的事情链接中的第二个答案更好。其他人显然同意,因为它有更多的选票当问题已经在别处得到回答时,不要抄袭答案。以重复的方式结束这个问题。@Andreas这不是我现在能做的
1.0001000
1.0000100
... 
if(unitValue<0.001){
    return String.format("%f %s", unitValue, unitFaName);
}
1.0001000
1.0000100
... 
public static String fmt(double d)
{
    if(d == (long) d)
        return String.format("%d",(long)d);
    else
        return String.format("%s",d);
}