A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

编码中加减乘除经常遇到,稍有不适,友谊的小船说翻就翻。
        Demo来一发,做做记录:

[java] view plain copy
print?

  • //保留两位小数  
  • private DecimalFormat decimalFormat = new DecimalFormat("0.00");  

    //保留两位小数    private DecimalFormat decimalFormat = new DecimalFormat("0.00");[java] view plain copy
print?

  • String str1="0.01";  
  • String str2="0.09";  
  • //转化为Double类型数值相加减,精度不会缺失  
  • double sum = Double.parseDouble(str1) + Double.parseDouble(str2);  
  • LogUtil.d("sum", sum + "");                //打印结果 sum=0.09999999999999999  
  • String formatTitle = decimalFormat.format(sum);  
  • LogUtil.d("formatum", formatTitle);        //打印结果 formatTitle=0.10  

        String str1="0.01";        String str2="0.09";        //转化为Double类型数值相加减,精度不会缺失        double sum = Double.parseDouble(str1) + Double.parseDouble(str2);        LogUtil.d("sum", sum + "");                //打印结果 sum=0.09999999999999999        String formatTitle = decimalFormat.format(sum);        LogUtil.d("formatum", formatTitle);        //打印结果 formatTitle=0.10
         其中主要用到了DecimalFormat 这个类,它是 NumberFormat 的一个具体子类,用于格式化十进制数字。         Demo示例:

[java] view plain copy
print?

  • DecimalFormat df1 = new DecimalFormat("0.0");  
  • DecimalFormat df2 = new DecimalFormat("#.#");  
  • DecimalFormat df3 = new DecimalFormat("000.000");  
  • DecimalFormat df4 = new DecimalFormat("###.###");  
  •   
  • LogUtil.d("sum",df1.format(12.34));     //打印结果 sum: 12.3  
  • LogUtil.d("sum",df2.format(12.34));     //打印结果 sum: 12.3  
  • LogUtil.d("sum",df3.format(12.34));     //打印结果 sum: 012.340  
  • LogUtil.d("sum",df4.format(12.34));     //打印结果 sum: 12.34  

        DecimalFormat df1 = new DecimalFormat("0.0");        DecimalFormat df2 = new DecimalFormat("#.#");        DecimalFormat df3 = new DecimalFormat("000.000");        DecimalFormat df4 = new DecimalFormat("###.###");        LogUtil.d("sum",df1.format(12.34));     //打印结果 sum: 12.3        LogUtil.d("sum",df2.format(12.34));     //打印结果 sum: 12.3        LogUtil.d("sum",df3.format(12.34));     //打印结果 sum: 012.340        LogUtil.d("sum",df4.format(12.34));     //打印结果 sum: 12.34
         以下摘自百度百科:         DecimalFormat 包含一个模式 和一组符号

    符号含义:
    0  一个数字
    #  一个数字,不包括 0
    .  小数的分隔符的占位符
    ,  分组分隔符的占位符
    ;  分隔格式。
    -  缺省负数前缀。
    % 乘以 100 和作为百分比显示
    ?  乘以 1000 和作为千进制货币符显示;用货币符号代替;如果双写,用国际货币符号代替。如果出现在一个模式中,用货币十进制分隔符代替十进制分隔符。
    X  前缀或后缀中使用的任何其它字符,用来引用前缀或后缀中的特殊字符。

1 个回复

正序浏览
怒赞!我用力顶到十个字符
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马