答案 1
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()。
另请注意,格式可能会因用户 Locale 而异,并且应使用以用户的区域设置作为参数的工厂方法相应地初始化 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
更新此格式化字符串也可以正常工作,而无需调用额外的方法:
DecimalFormat format=new DecimalFormat("#,###.#");
//format.setDecimalSeparatorAlwaysShown(false);
答案 2
您需要使用十进制格式来格式化双精度格式。
public static void main(String[] args) {
DecimalFormat decimalFormat=new DecimalFormat("#.#");
System.out.println(decimalFormat.format(2.0)); //prints 2
}
推荐
-
如何在整个字符串中搜索特定单词? 我有这个代码,它搜索一个字符串数组,如果输入字符串与字符串的第一个字符匹配,则返回结果: 但是我想得到那些字符串,其中输入字符串不仅在第一个字符中匹配,而且在字符串中的任
-
添加Android应用程序的快捷方式到主屏幕打开按钮点击 我想通过按下按钮轻松将我的应用程序添加到主屏幕。因此,我在想的是我的应用程序底部的一个按钮,上面写着“添加到主屏幕”,当按下它时,它会在不关闭应用程序的情况下将快捷方式添
-
将屏幕亮度控制添加到安卓应用程序 我希望在我的应用程序菜单中添加控件以在本地调整屏幕亮度,但似乎不知道如何操作。我已经看到了最大化或调暗亮度的示例,但我希望添加控件,以便用户可以控制和设置亮度级别。有没有
-
-
由以下原因引起:java.lang.IllegalStateException: ParsePlugins 已被初始化 我退出了应用程序,重新启动了它,我得到了一个例外。 编辑: 我想知道为什么Parse会为此抛出一个异常。为什么不继续前进。它已初始化,如果我再次初始化它,那就太大了。 溶液 我已
标签
推荐