我想改变浮动像这样:在Java中,如何删除float中的所有0?
10.5000 - > 10.5 10.0000 - > 10
如何删除所有零小数点后,并改变它要么浮动(如果有非-Zero)或int(如果只有零)?
在此先感谢。
我想改变浮动像这样:在Java中,如何删除float中的所有0?
10.5000 - > 10.5 10.0000 - > 10
如何删除所有零小数点后,并改变它要么浮动(如果有非-Zero)或int(如果只有零)?
在此先感谢。
根据需要为输出格式化数字。您不能删除内部的“0”值。
尝试使用System.out.format
下面有一个链接,允许C样式格式 http://docs.oracle.com/javase/tutorial/java/data/numberformat.html
这两种不同的格式化处理它:
double d = 10.5F;
DecimalFormat formatter = new DecimalFormat("0");
DecimalFormat decimalFormatter = new DecimalFormat("0.0");
String s;
if (d % 1L > 0L) s = decimalFormatter.format(d);
else s = formatter.format(d);
System.out.println("s: " + s);
java.math.BigDecimal有一个stripTrailingZeros()方法,它可以实现你要找的东西。
BigDecimal myDecimal = new BigDecimal(myValue);
myDecimal.stripTrailingZeros();
myValue = myDecimal.floatValue();
嘛诀窍是,花车和双打自己真的没有尾随零本身;这只是它们打印(或初始化为文字)的方式,可能会显示它们。考虑这些例子:
Float.toString(10.5000); // => "10.5"
Float.toString(10.0000); // => "10.0"
可以使用DecimalFormat
修复的“10.0”的例子:我有同样的问题
new java.text.DecimalFormat("#").format(10.0); // => "10"
,并找到在以下链接解决方法: StackOverFlow - How to nicely format floating numbers to string without unnecessary decimal 0
JasonD的回答是我所遵循的。这不是由地区决定的,这对我的问题很有帮助,并且没有长期价值的问题。
希望得到这个帮助。
添加内容从以上链接:
public static String fmt(double d) {
if(d == (long) d)
return String.format("%d",(long)d);
else
return String.format("%s",d);
}
产地:
232
0.18
1237875192
4.58
0
1.2345
你可以从链接中添加一些内容吗? – Robert
我不太明白。零点只是文本表示的产物,它们与浮点数如何在内部表示无关。你在寻找抑制尾随零的自定义输出格式吗? –