将double转换为不带小数位的String的最佳方法是什么?
String.valueOf((int) documentNumber)?
小数点后的双打总是0。我不需要围绕或截断
答案 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;
这是最好的方法,(显然对于有经验的程序员而言)!