Java中float数据转换的小问题

来源:百度知道 编辑:UC知道 时间:2024/07/07 03:28:33
float f1=0.1f 与float f1=(float)0.1
这两个表达式结果一样,但是占的内存不一样么

第一个表达式 声明变量f1 值为 0.1 float类型
第二个表达式 涉及了强制类型转换,0.1后面不加F的时候代表的不是float型而是double型,前面加(float)就是把这个数强制转化为float型
总结:2个表达式的结果是相同的,但是第二个占得内存会多,它不仅是生命了2种类型的数据,同时类型转换。
希望我的答案,您能满意。

一样

后一个的0.1是double型的

就是那样

float f1=0.1f 是float类型的
float f1=(float)0.1后面没有写是double

是这样的
前一个分配的是float大小的内存。因为它加了f这个小尾巴。在编译的时候告诉编译器:“我就要float大小的内存奥”。而后面的表达式,先从右边往左边执行。首先遇到0.1 编译器会默认给它分配一个double大小的内存,把它装进去。然后遇到(float)就是告诉编译器:“我要把我这里的变量(即double这个内存里装的那个值)转换成一个float类型的,多余的部分可以进行截取,你不要拦着”。
不知道你明白了否。