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


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

    这样的问题是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却没有这样的情况? 
    现在我没有解决,如果有朋友知道的,请和大家分享一下....
  • 相关阅读:
    判断js中的类型
    js数组的4种遍历方式
    js笔记
    Windows 常用 CMD 命令介绍
    css笔记
    winform项目笔记:
    Angular4 中内置指令的基本用法
    Angular4入门笔记
    8、跳台阶
    7、斐波那契数列
  • 原文地址:https://www.cnblogs.com/hongten/p/java_double.html
Copyright © 2020-2023  润新知