从双精度中删除.0

Jos*_*osh 5 java double long-integer

我试图动态显示字符串中的数字,所以如果数字有十进制显示它们但如果不显示.0

示例:将5.5显示为5.5,将5.0显示为5

这是我到目前为止:(答案是双倍的)

double temp = answer;
long temp2 = (long) temp;
if (temp == temp2) {
output = String.valueOf(temp2);
System.out.println(output);
Run Code Online (Sandbox Code Playgroud)

这项工作很好,大约1e18然后将因为Long的最大大小而错误.那么我将如何在5.43e86等更大的数字上实现这一目标

Kal*_*Kal 25

使用DecimalFormat

double answer = 5.0;
DecimalFormat df = new DecimalFormat("###.#");
System.out.println(df.format(answer));
Run Code Online (Sandbox Code Playgroud)