可能重复:
How do I format a number in java?如何在java中使用double时去除整数中的“.0”?
我在使用双重问题。当结果是一个整数时,它将显示一个“.0”,如1.0,2.0。
任何人都可以帮助我如何在整数中删除.0?
可能重复:
How do I format a number in java?如何在java中使用double时去除整数中的“.0”?
我在使用双重问题。当结果是一个整数时,它将显示一个“.0”,如1.0,2.0。
任何人都可以帮助我如何在整数中删除.0?
Format您显示的字符串。
import java.text.DecimalFormat;
public class Asdf {
public static void main(String[] args) {
DecimalFormat format = new DecimalFormat();
format.setDecimalSeparatorAlwaysShown(false);
Double asdf = 2.0;
Double asdf2 = 2.11;
Double asdf3 = 2000.11;
System.out.println(format.format(asdf));
System.out.println(format.format(asdf2));
System.out.println(format.format(asdf3));
}
}
打印:
2
2.11
2,000.11
使用
DecimalFormat format=new DecimalFormat("#.#"); //not okay!!!
是不正确的,因为它与10^3弄乱,10^6等的隔板。
2000.11将显示为“2000.11”,而不是“2,000.11”
这是当然的,如果你想显示正确的格式,而不是仅仅使用不当数字的toString()。
还要注意,格式可能不同的基于用户的语言环境和DecimalFormat的应该相应地使用工厂方法与用户的语言环境作为参数进行初始化:
NumberFormat f = NumberFormat.getInstance(loc);
if (f instanceof DecimalFormat) {
((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true);
}
http://download.oracle.com/javase/1.5.0/docs/api/java/text/DecimalFormat.html
UPDATE 此格式字符串正常工作也没有调用额外的方法:
DecimalFormat format=new DecimalFormat("#,###.#");
//format.setDecimalSeparatorAlwaysShown(false);
将其转换为整数? –
这个问题的结束是不正确的,因为它不是一个通用的“如何在Java中格式化数字”的问题,而是一个关于特定格式风格的问题。 – MarianP
它应该是一个重复的http://stackoverflow.com/questions/703396/how-to-nicely-format-floating-types-to-string – rds