A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邱成 中级黑马   /  2012-9-30 17:54  /  1418 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 邱成 于 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
怎么解决这个问题?

1 个回复

正序浏览
这是由于精度问题造成的,好像没有直接的解决方法,但是你可以去查询一下这个类BigDecimal,能够解决你的问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马