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

java开发_double精度丢失的问题总结

这样的问题是java(或C#)中的double的精度丢失的问题。

如下面的运行结果:

java开发_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 }

运行结果:

java开发_double精度丢失的问题总结

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

相关文章:

  • 2022-01-15
  • 2021-08-23
  • 2022-12-23
  • 2021-05-30
  • 2021-05-27
  • 2021-10-10
  • 2022-12-23
  • 2022-02-24
猜你喜欢
  • 2021-05-18
  • 2021-12-18
  • 2021-09-25
  • 2021-12-04
相关资源
相似解决方案