发布网友 发布时间:2024-08-12 22:09
共5个回答
热心网友 时间:2024-09-03 23:37
在当前的计算机中,double类型存储占8字节,float类型存储占4字节,当两个不同类型的数据进行赋值时,系统进行隐式类型转换,高精度向低精度的赋值时,低精度变量无法完整存储高精度数据,系统会自动“截断”部分内容,完成数据转存,这样就有可能会造成数据精度丢失。热心网友 时间:2024-09-03 23:40
double 是64位8个字节...float是32位4个字节。。因此从double转成float会被截取高位的32位。。热心网友 时间:2024-09-03 23:37
该说的前面两位都说了热心网友 时间:2024-09-03 23:37
就是数据有流失,C、C++的类型是对应的内存地址的,16位机中float是2字节,double是4字节所以,复制过程中,低位就会被会略了,编译器会提示类型转换的警告,解决方法就是,1,定义成一致的变量2,对FLOAT强制转换成DOUBLE,祝你顺利热心网友 时间:2024-09-03 23:35
#define PI 3.1 这句最后加个f就OK了 #define PI 3.1f热心网友 时间:2024-09-03 23:35
在当前的计算机中,double类型存储占8字节,float类型存储占4字节,当两个不同类型的数据进行赋值时,系统进行隐式类型转换,高精度向低精度的赋值时,低精度变量无法完整存储高精度数据,系统会自动“截断”部分内容,完成数据转存,这样就有可能会造成数据精度丢失。热心网友 时间:2024-09-03 23:37
double 是64位8个字节...float是32位4个字节。。因此从double转成float会被截取高位的32位。。热心网友 时间:2024-09-03 23:39
该说的前面两位都说了热心网友 时间:2024-09-03 23:41
#define PI 3.1 这句最后加个f就OK了 #define PI 3.1f热心网友 时间:2024-09-03 23:38
就是数据有流失,C、C++的类型是对应的内存地址的,16位机中float是2字节,double是4字节所以,复制过程中,低位就会被会略了,编译器会提示类型转换的警告,解决方法就是,1,定义成一致的变量2,对FLOAT强制转换成DOUBLE,祝你顺利