如果 double 是整数,不显示小数?
Posted
技术标签:
【中文标题】如果 double 是整数,不显示小数?【英文标题】:Not displaying decimals if double is a whole number? 【发布时间】:2012-10-23 10:52:29 【问题描述】:我正在用 Java 制作一个图形计算器程序,并且有一个方法可以根据用户输入执行操作,并返回一个双精度值以显示在 JTextField
中。但是,我希望结果显示为一个整数,而不是后面的".0"
,其中小数点后没有有效数字,但在必要时仍显示小数点。最有效的方法是什么?
【问题讨论】:
如果后面的两个字符是.0
,则可能转换为字符串并通过条件来操作它?
如何编写条件来检查尾随字符?
对使用DecimalFormat的问题有更好的回答。请参阅下面 Reimeus 的回答。
【参考方案1】:
您可以使用DecimalFormat
来抑制尾随字符,例如:
DecimalFormat format = new DecimalFormat("#.##");
double doubleFromTextField = Double.parseDouble(myField.getText());
System.out.println(format.format(doubleFromTextField));
【讨论】:
这有助于在所有情况下格式化输出,但如果尾随小数是“.0”,我只想消除尾随小数。如果 double 是整数,我将如何编写条件来仅格式化输出?感谢您的帮助。 这个例子实际上是按照你的要求做的,小数点后的任何重要(非零)数字都会显示出来,所以不需要额外的检查。 我太笨了,我没有注意到它正在将我想要的正确答案打印到控制台而不是 JTextField 中。谢谢你雷默斯! 要记住的重要一点是,# 表示“无前导零”,其中包括小数点后的尾随零。 developer.android.com/reference/java/text/DecimalFormat.html以上是关于如果 double 是整数,不显示小数?的主要内容,如果未能解决你的问题,请参考以下文章
在java中 如何让double 型输出整数不显示小数点和其后的0
sqlServer如何把float转换为字符串,如果没有小数转换后显示整数,如果有小数显示两位小数。