如果 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

excel整数时不显示小数点

sqlServer如何把float转换为字符串,如果没有小数转换后显示整数,如果有小数显示两位小数。

请问各位大侠:oracle的存储过程返回值如果有0.2等这类小数时,为何前面的0会不显示,如何解决

怎么使float保留两位小数或多位小数

如何显示不带小数的整数