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

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位?

输出1位 :因为 float 本来就是单精度的! 输出1位正常!不过通常带有 12.2f 1.float 它最多只能保存 7位有效数字! 2.两个float相乘结果为float 3.乘数中只要有一个数为double,结果也有double 4.实数在计算机是以浮点数的形式表示的。所以要看它的实际二进制的编码方式
温馨提示:内容为网友见解,仅供参考
无其他回答

java中float和double输出结果到底是多少位
输出1位正常!不过通常带有 12.2f 1.float 它最多只能保存 7位有效数字!2.两个float相乘结果为float 3.乘数中只要有一个数为double,结果也有double 4.实数在计算机是以浮点数的形式表示的。所以要看它的实际二进制的编码方式

Java中double与float
float是32位的 double是64位的 都是浮点型但是表示范围是不一样的,转换的时候当然会提示精度损失,虽然这个数字在两个类型中都是不溢出的。当你不声明时,默认为double的,要声明float该写为 float PI=3.14f;\/\/这样才可以哦~或者float PI = (float)3.14;...

Java语言中的浮点型数据的float和double的单精度和双精度到底是啥意思...
double占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308。5、有效位数不同 float只能提供七位有效数字。double可提供16位有效数字。

java中double和float的区别
float 8 位 23 位 double 11 位 52 位 它们占的字节数不一样。float点四字节,32位,用了23位来表示有效位,转成十进制数就是六到七位有效位,即最高位非0开始,精度在六位数的可以证它是正确的,第七位数小一点在23位二进制的表示范围内也能保证正确,超过这七位数的,不保证它...

java中float和double的取值范围是什么?
float:4字节(32bit),IEEE 754. 取值范围:[-3.40282346638528860e+38 , -1.40129846432481707e-45] ∪ [1.40129846432481707e-45 ~ 3.40282346638528860e+38] 。double: 8字节(64bit) ,IEEE 754. 取值范围:[-1.79769313486231570e+308,-4.94065645841246544e-324] ∪ [4.94065645841246544e-...

float和 double类型在java各是多少位啊
Java中的float是32位的,double是64位的。float和double的范围是由指数的位数来决定的。float的指数位有8位,而double的指数位有11位,分布如下:float:1bit(符号位) 8bits(指数位) 23bits(尾数位)double:1bit(符号位) 11bits(指数位) 52bits(尾数位)于是,float的指数范围为-128~+...

java double和float的区别
一、float是单精度类型,精度是8位有效数字,取值范围是10的-38次方到10的38次方,float占 用4个字节的存储空间 二、double是双精度类型,精度是17位有效数字,取值范围是10的-308次方到10的308次 方,double占用8个字节的存储空间 三、当你不声明的时候,默认小数都用double来表示,所以如果...

java中的double和float类型数据的最大值是怎么算出来的
float长度值32比特也就是32位,有一位是符号位 第一个bit表示符号位 2-9这8个表示的是2的指数,但是这里有个指数偏移值的概念 剩下的是小数部分 http:\/\/www.233.com\/JAVA\/Instructs\/060530\/095611815.html http:\/\/zh.wikipedia.org\/zh-cn\/IEEE_754 这两个加在一起说的就比较明白了 ...

安卓。JAVA中实型变量的类型有double和float两种,这两种类型所占的内存...
单精度float所占内存空间是32位,其表示范围是1.4E-45至3.4028235E38;双精度double所占内存空间是64位,其表示范围是4.9E-324至1.7976931E308

float与double的区别是什么?
使用Python语言):在这个示例中,我们分别使用了float和double类型来表示圆周率(π)。float_num变量使用了float类型,而double_num变量使用了double类型。输出结果为:可以看到,float_num只保留了6位有效数字,而double_num则保留了更多位有效数字。这展示了double类型相对于float类型的更高精度。

相似回答