float和double都是浮点数的表示方法,只是double的精度较float高。
double就是long float嘛。
x是float的,调用sin()函数,会进行隐式转换为double类型。(如果sin函数只定义了double 形参的话),从低精度向高精度转换是不会丢失精度的。
double 和 float本来就都是浮点数,double的精度和范围大过float而已,这种转换可以是隐性的
结果返回的double也被隐性的转换回float了,在大部分时候这种情况不会出现问题,大概在C语言设计之初觉得这么琐碎的事情要是都报错很麻烦吧
强制类型转换