我变秃了。 发表于 2020-7-21 23:49:06

求助float的问题

警告      1      warning C4305: “初始化”: 从“double”到“float”截断      f:\练习\consoleapplication12\consoleapplication12\菜市场721.c      5      1      ConsoleApplication12


请问用Visual Studio 2013编程遇到这种情况是为啥,如何解决?
多谢各位大佬

永恒的蓝色梦想 发表于 2020-7-22 07:23:12

就是个截断啦,问题不大

不过你也得发代码啊

livcui 发表于 2020-7-22 08:08:45

小问题,可以忽略,只是编译器不把浮点数常量视为float(应该是为了保留精度),但编译器应该会强制转换(我觉得),
只要注意别超过float的有效位就可以了,
如果实在要改,加个f在常量前,会转换为float类型

sunrise085 发表于 2020-7-22 09:51:12

C++中小数常量默认被当做double类型,而double类型和float类型所占的空间不一样(一般double是8字节,float是4字节),精度也不一样。
当你直接将一个小数赋值给float类型变量的时候,就会出现这个警告。
例如:
float num;
num=1.56;//这里会有警告,因为1.56是个小数常量,没人被认为是double,而你将之赋值给了folat变量,就会有精度损失。
一般可以不管,若感觉有warning不爽,可以显式的指定类型
float num;
num=1.56f;//显式指出是float类型,就不会报出警告了
页: [1]
查看完整版本: 求助float的问题