请问从“double”到“float”截断怎么解决

img
自学C++才几天的小白一个,用的是VS2017。
也上网查了,说是把3.14后面加一个f,可是我就是这么做的,但是却无法运行……
除了这个我好像还是有别的错误,但是看不懂错误是什么,求大佬解答,谢谢啦!

1.“double”到“float”截断是解决不了的,在64位机器上,你double8字节,float4字节,储存的信息自然就是double远远大于float,你转换之后必然有截断,这是浮点数底层机制的问题
2.main函数的函数名必须叫main,以此作为程序的入口,你叫main1肯定是不行的

警告而已,float截断影响不是很大,只是精度从double变成float的时候会丢掉一部分的信息,但是对于float来说精度还是足够的,所以影响不大。要想去除这个警告也很简单,使用强制转换,就不会警告了。

double a=3.14;
float b=(float)a;

你的报错是没有main函数,一个项目要有且仅有一个main函数来当入口的,你的是main1就不行了,相当于变成其他函数了。这个改一下就行了