ikz*_*ton 22 java double android
可能重复:
如何格式化java中的数字?
我在使用Double方面遇到了问题.当结果是整数时,它将显示"1.0",如1.0,2.0.
任何人都可以帮我如何删除整数的.0?
Mar*_*anP 47
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) );
}
}
Run Code Online (Sandbox Code Playgroud)
打印:
2
2.11
2,000.11
Run Code Online (Sandbox Code Playgroud)
运用
DecimalFormat format=new DecimalFormat("#.#"); //not okay!!!
Run Code Online (Sandbox Code Playgroud)
是不对的,因为它与10 ^ 3,10 ^ 6等分离器混淆.
2000.11将显示为"2000.11"而不是"2,000.11"
当然,如果您想要显示格式正确的数字,而不仅仅是使用不正确的toString().
另请注意,基于用户的格式可能不同Locale和DecimalFormat应使用工厂方法相应地初始化,并使用用户的Locale作为参数:
NumberFormat f = NumberFormat.getInstance(loc);
if (f instanceof DecimalFormat) {
((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true);
}
Run Code Online (Sandbox Code Playgroud)
http://download.oracle.com/javase/1.5.0/docs/api/java/text/DecimalFormat.html
更新 此格式化字符串也可以正常工作,而无需调用额外的方法:
DecimalFormat format=new DecimalFormat("#,###.#");
//format.setDecimalSeparatorAlwaysShown(false);
Run Code Online (Sandbox Code Playgroud)
Coo*_*ans 27
您需要使用DecimalFormat来格式化double.
public static void main(String[] args) {
DecimalFormat decimalFormat=new DecimalFormat("#.#");
System.out.println(decimalFormat.format(2.0)); //prints 2
}
Run Code Online (Sandbox Code Playgroud)