编码中加减乘除经常遇到,稍有不适,友谊的小船说翻就翻。
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 前缀或后缀中使用的任何其它字符,用来引用前缀或后缀中的特殊字符。
|
|