在博问上面看到这样的一个问题:

这样的问题是java(或C#)中的double的精度丢失的问题。
如下面的运行结果:

=============================================================
下面是解决方法
=============================================================
代码部分:
DecimalFormat的几种用法 :http://blog.sina.com.cn/s/blog_4fcb75bd01008bz7.html
1 /**
2 *
3 */
4 package com.b510;
5
6 import java.text.DecimalFormat;
7
8 /**
9 * @date 2012-11-22
10 * @author hongten
11 *
12 */
13 public class TTTT {
14 public static void main(String[] args) {
15 javaDouble57();
16 javaDouble58();
17 }
18
19 /**
20 * double中的57
21 */
22 public static void javaDouble57() {
23 double number = 0.57;
24 double doubleResult = number * 100;
25
26 DecimalFormat df1 = new DecimalFormat("###0");
27 String parValue = df1.format(doubleResult);
28 int result = Integer.valueOf(parValue);
29 System.out.println(result);
30 // 精度丢失
31 System.out.println(number * 100);
32 }
33
34 /**
35 * double中的58
36 */
37 public static void javaDouble58() {
38 double number = 0.58;
39 double doubleResult = number * 100;
40
41 DecimalFormat df1 = new DecimalFormat("###0");
42 String parValue = df1.format(doubleResult);
43 int result = Integer.valueOf(parValue);
44 System.out.println(result);
45 // 精度丢失
46 System.out.println(number * 100);
47 }
48 }运行结果:

这个问题:为什么只有57,58会这样,而其他如:55,56,59却没有这样的情况?
现在我没有解决,如果有朋友知道的,请和大家分享一下....