Java bytearrayoutputstream问题

publicclassDemo4{publicstaticvoidmain(String[]args){try{ByteArrayOutputStreambaos=new... public class Demo4 {

public static void main(String[] args) {
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dops = new DataOutputStream(baos);
dops.writeDouble(0.12039120381238123812038);
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
DataInputStream dips= new DataInputStream(bais);
System.out.println(bais.available());
System.out.println(dips.readDouble());
} catch (Exception e) {
// TODO: handle exception
}

}

}
代码如上,我输出一个double类型的数,再输入的话为什么就少几位
展开
 我来答
taotling
2012-04-23 · TA获得超过2000个赞
知道小有建树答主
回答量:412
采纳率:50%
帮助的人:379万
展开全部
具体原因未知。
double类型在JAVA中底层也是用二进制表示的。
可能并不是所有的小数都可以用二进制浮点数来精确表示吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式