2个回答
思路:
1,使用BigDecimal类里面的valueOf(doeble d)方法,
2,在使用BigDecimal类里面的stripTrailingZeros()方法,去除没用的0,
3,最后把BigDecimal类型转换为字符串,
4,注意,不能在把字符串转换为doule了,在转换为double前面的事情就白做了,
public class Demo11 {
public static void main(String[] args) {
double d1 = 2.0;
String s1 = BigDecimal.valueOf(d1).stripTrailingZeros().toPlainString();
System.out.println(s1);// 2
double d2 = 5.5;
String s2 = BigDecimal.valueOf(d2).stripTrailingZeros().toPlainString();
System.out.println(s2);// 5.5
}
}
static String fmt_prt_double( Double d ) //自定义格式化输出函数
{
String s=String.format("%f", d);//将浮点数转为字符串
int i;
for( i=s.length()-1;i>=0;i-- ) //从串尾向前检查,遇到非0数据结束循环
{
if ( s.charAt(i)=='.' ) //遇到小数点结束,说明是个整数
break;
if ( s.charAt(i) != '0' ) //遇到小数中有非0值,结束
{
i++;
break;
}
}
return s.substring(0,i); //返回处理后的子串
}
。。。
System.out.println("运算结果为:" + jiashu1 + " + " + jiashu2
+ " = " + fmt_prt_double(jiashu1 + jiashu2));