为什么C自动将float类型的参数转换为double类型?
1.如printf()传递参数时,C自动将float类型的参数转换为double类型.
2.当为某个数值类型的变量进行初始化时,如果使用了其他类型的值,C会自动对该值进行类型转换以便和变量类型想匹配,这意味着可能会丢失一部分数据.例如下面初始化语句:
第一种:int cost=12.99; //把一个int变量初始化为一个double值.
第二种:float pi=3.1415926536; //把一个float变量初始化为一个double值.
--------------------------------------------------------------------------
我倒觉得第一种说法有一点点正确,但是它说//把一个int变量初始化为一个double值...为什么把一个int变量初始化为一个double值,而不初始化为float值呢?
第二种就看不透是什么意思? 明明用float类型去赋值一个浮点数,可是为什么还要自动转换为double类型?float和double类型都是定义浮点数的类型啊!为什么会这样的?