java数据类型转换
发布网友
发布时间:2022-04-29 08:30
我来回答
共4个回答
热心网友
时间:2022-06-24 21:41
这很明显
第一 c=(int)d; 意思是把d的值强转为int类,然后赋给c,那么c自然也等于8000.
第二 f=(float)g; 意思是把double类型的g值,强转为float类型然后赋给f,因为float是单精度,所以结果就去掉小数点的一半.
热心网友
时间:2022-06-24 21:41
是因为浮点行转换成字符串的时候 涉及到占位和补位 所以会产生这种情况
一个字符占2个字节 而一个浮点小数的单精度是占4个字节 双精度占8个字节
在转换的时候当然会出现这种情况
热心网友
时间:2022-06-24 21:42
我补充下hnxpmm的解释吧
f=1.23456792E8相当于是将123456789.123456789的小数点前移变成1.23456789123456789*10^8,去掉小数的一半就变成1.23456789*10^8了,
热心网友
时间:2022-06-24 21:42
double g = 123456789.123456789;
f = 1.23456792E8;
相信你应该看到了!