黑马程序员技术交流社区
标题:
下面代码有问题吗,为什么结果总是不对?
[打印本页]
作者:
何竹冬
时间:
2013-1-3 23:23
标题:
下面代码有问题吗,为什么结果总是不对?
import java.io.DataInputStream;
import java.io.IOException;
public class Test {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
DataInputStream dis = new DataInputStream(System.in);
double a = dis.readDouble();
double b = dis.readDouble();
System.out.println(a+b);
dis.close();
}
}
作者:
而今从头越2012
时间:
2013-1-4 10:21
通过查阅API文档,发现这个方法是:从包含的输入流中读取此操作需要的字节;返回的结果为:此输入流的下八个字节,将它们解释为一个 double。
当你输入内容的时候,这个方法readDouble()会读取下八个字节数,根据字节数算,结果肯定会的得到不是你想要的。
不知道你想要个什么结果,如果只是实现输入两个double数,最后得到它们的和值。那么你最好别用这种数据输入流,建议你改成Scanner。
下面有段代码,可以参考一下:
package com.itheima;
import java.io.IOException;
import java.util.Scanner;
/**
* @author XuCheng
*
*/
public class Test{
public static void main(String[] args) throws IOException{
Scanner dis = new Scanner(System.in);
double a = dis.nextDouble();
double b = dis.nextDouble();
System.out.println("a + b = " + (a+b));
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2