java中float和double输出结果到底是多少位

publicclasstest{publicstaticvoidmain(String[]args){floati=12.3f,j=12.3f;floatk=i*j;do... public class test{ public static void main(String[] args){ float i=12.3f, j=12.3f; float k=i*j; double x=12.3,y=12.3; double z=x*y; System.out.println("i*j="+k); System.out.println("x*y="+z);}} 输出结果是 i*j=151.29001 x*y=151.29000000000002(小数点后14位) public class test{ public static void main(String[] args){ float x=12.3f; double y=x; System.out.println("x="+x+"\n"+"y="+y); } } 输出结果是 x=12.3 y=12.300000190734863(小数点后15位) 为什么输出的float类型有的是小数点后5位和1位的,默认不是6位吗? doube类型第一个是小数点后14位的,第二个却是小数点后有15位? 展开
 我来答
有你便是安好b1
2014-06-22 · 超过63用户采纳过TA的回答
知道答主
回答量:123
采纳率:0%
帮助的人:121万
展开全部
输出1位 :因为 float 本来就是单精度的! 输出1位正常!不过通常带有 12.2f 1.float 它最多只能保存 7位有效数字! 2.两个float相乘结果为float 3.乘数中只要有一个数为double,结果也有double 4.实数在计算机是以浮点数的形式表示的。所以要看它的实际二进制的编码方式
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式