将double转换为String而不包含小数位的最佳方法

时间:2015-02-24 21:55:06

标签: java math

将double转换为不带小数位的String的最佳方法是什么?

String.valueOf((int) documentNumber)?

怎么样?

小数点后的双打总是0。我不需要围绕或截断

7 个答案:

答案 0 :(得分:6)

如果你确定double确实是一个整数,请使用这个:

NumberFormat nf = DecimalFormat.getInstance();
nf.setMaximumFractionDigits(0);
String str = nf.format(documentNumber);

作为奖励,这样您就可以将您的语言环境配置保存在千位分隔符中。

修改
我添加了此前删除的选项,因为它似乎对OP有用:

Double.valueOf(documentNumber).intValue();

答案 1 :(得分:3)

你可以试试这个:

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

答案 2 :(得分:1)

您可以使用最低必要精度将double转换为字符串:

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"

答案 3 :(得分:1)

我不确定这是不是最好的方法,但我相信它是最短的方式:

((int)documentNumber) + ""

答案 4 :(得分:0)

鉴于新编辑的问题表明双打实际上是整数,我会说你建议的答案String.valueOf((int) documentNumber)很棒。

答案 5 :(得分:0)

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

另一种方法是,如果要保持隐藏转换的方式,请使用toString方法

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

答案 6 :(得分:-2)

引号+双

字符串s =“” + 0.07;

这是最好的方法,(显然对于有经验的程序员而言)!