Java 将双精度转换为不带小数点的字符串的最佳方法

Java 将双精度转换为不带小数点的字符串的最佳方法,java,math,Java,Math,将double转换为不带小数点的字符串的最佳方法是什么 String.valueOf((int)documentNumber)呢? 双精度小数点后始终有0。我不需要四舍五入或截断您可以以最低的精度将双精度转换为字符串: public static String ceonvert(double d) { if(d == (long) d) return String.format("%d",(long)d); else return String.f

将double转换为不带小数点的字符串的最佳方法是什么

String.valueOf((int)documentNumber)呢?


双精度小数点后始终有0。我不需要四舍五入或截断

您可以以最低的精度将双精度转换为字符串:

public static String ceonvert(double d)
{
    if(d == (long) d)
        return String.format("%d",(long)d);
    else
        return String.format("%s",d);
}
或者这个:

> new DecimalFormat("#.##").format(2.199); //"2.2"
你可以试试这个:

String numWihoutDecimal = String.valueOf(documentNumber).split("\\.")[0];

我不确定这是否是最好的方式,但我确定这是最短的方式:

((int)documentNumber) + ""

如果您确定double确实是一个整数,请使用以下选项:

NumberFormat nf = DecimalFormat.getInstance();
nf.setMaximumFractionDigits(0);
String str = nf.format(documentNumber);
作为奖励,通过这种方式,您可以将区域设置的配置保持为千分之一

编辑
我添加了这个之前删除的选项,因为它似乎对OP很有用:

Double.valueOf(documentNumber).intValue();

鉴于最新编辑的问题指出Double实际上是整数,我认为您建议的答案
String.valueOf((int)documentNumber)
非常好。

引号+Double

字符串s=”“+0.07


哈哈,这是最好的方式,(显然对于有经验的程序员来说)

将double转换为字符串的最简单方法是使用引号,然后再使用double。 双d=123; 字符串a=”“+d

另一种方法是使用toString方法,如果您希望隐藏转换它的方式

public String toString()
{
   String a + ""  d;
} 

取决于是否要截断或舍入我的双精度数字在小数点后始终有0。我不需要绕行或截断,这是一个或另一个。听起来像是截断。转换为int是最简单的,在我看来,它将给出与转换为int相同的结果。我很高兴你看到了它,它为你工作。我重新添加删除的答案,因为它似乎很有用。首先我们将double转换为integer,然后通过将空字符串添加到字符串来转换integer。3简单操作。也许一个缺点是,我们创建了一个多余的对象(空字符串),但java编译器正在优化这种构造。甚至像这样的对象的空字符串也会在JVM开始时兑现。在我看来,这是最好的实践:简单、易读、易于为JVM优化。证明我错了。如果你的灵魂目的是从你的双精度表中删除小数,那么这个解决方案没有错。