黑马程序员技术交流社区

标题: io流问题 [打印本页]

作者: 邱成    时间: 2012-9-30 17:54
标题: io流问题
本帖最后由 邱成 于 2012-10-1 17:02 编辑

package untitled3;

import java.io.*;
public class App
{
  public static void main (String args[])
  {
    String s = "";
    double d,y1 = 0;
    int y = 0;
    try{
      BufferedReader in = new BufferedReader(
          new InputStreamReader(System.in));
      System.out.print("请输入一个浮点数:");
      s = in.readLine();
      d = Double.parseDouble(s);
      y = (int)Math.floor(d);
      y1 = d-y;
    }catch(IOException e){}
    System.out.println("你输入的是:" + y + " and " + y1);
    }
  }
这是个输入一个小数,然后将小数部分和整数部分分别输出的程序
为什么输入一个2位小数,小数部分的计算结果总是不对?
如输入一个 3.05 小数部分是0.0499999999982
怎么解决这个问题?
作者: 王海宇    时间: 2012-9-30 18:08
这是由于精度问题造成的,好像没有直接的解决方法,但是你可以去查询一下这个类BigDecimal,能够解决你的问题




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2