新手提问~ 关于double运算和一条语句的解释 1、double和float存储的是不精确的数值2、new InputStreamReader(System.in))是将系统输入(System.in本身是字节流)封装为字符流,BufferedReader是缓冲的字符流 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 浮点数是没法100%精确的,即使是在最大最小范围之内。原因很简单,无论int(32bit), long(64), float(32), double(64)都是用二进制来表示数的,有多少bit,就代表这种类型最多能精确表示 2^N 种可能的值。整数由于在其最大最小范围内的个数是有限的,所以这个范围内任何一个整数都可以100%精确地表示出来。而浮点数由于涉及到小数,而小数的个数是无穷的(哪怕这个范围只是正负1),因此用有限个精确值去表示无数种可能,必然结果是绝大部分是不精确的。比如你这个例子中1.21000....2这个就是个能用二进制浮点型精确表示出来的数字,而1.21恰巧就是属于那绝大部分,无法精确表示出来的数字。至于规律吗,不清楚但是有一点是肯定的,就是浮点数的精确值的分布是以0为中心的正态分布(或近似),也就是越接近0,精确数的个数就越多,绝对值越大,相邻两个精确值之间的间隔就越大。如果一定要精确计算,请使用java.math.BigDecimal,它是以十进制为基础的,(理论上)可以精确表示任何数,至少是有理数 org.eclipse.swt.browser 中的getText() 方法 java 关键字显示的问题 子类可以继承父类的构造方法么?看看这短代码怪怪的 java socket远程网络连接 在java中能对数据库同时执行两个操作吗 100分!打开文件的问题 一个比较弱的输出问题!请帮忙!谢了! 请问java的程序能不能在Mac OS系统上运行? 有对输入法感兴趣的吗? 菜鸟问题:请高手指点。 xxx.equals(null)和xxx == null 的区别 求Rational XDE Developer FOR JAVA下载地址,谢谢。找的好辛苦啊。
而1.21恰巧就是属于那绝大部分,无法精确表示出来的数字。至于规律吗,不清楚但是有一点是肯定的,就是浮点数的精确值的分布是以0为中心的正态分布(或近似),也就是越接近0,精确数的个数就越多,绝对值越大,相邻两个精确值之间的间隔就越大。如果一定要精确计算,请使用java.math.BigDecimal,它是以十进制为基础的,(理论上)可以精确表示任何数,至少是有理数