C语言中,整数与浮点型数运算,得到的结果是浮点型,为什么我得到的还是整形??如图,谢谢各位老师

C语言中,整数与浮点型数运算,得到的结果是浮点型,为什么我得到的还是整形??如图,谢谢各位老师a是整形,a*2.5*0.9我认为应该是带有小数点的

你的理解只对了一半。确切地说:表达式 2.5*0.9*a的值的确是浮点类型的。但关键的是:在将一个浮点类型值赋值给整型变量时发生了类型转换,即将左边浮点类型的值,按“向零取整”原则,转换为整型类型的值了!( ̄▽ ̄)"追问

多谢帮助!

追答

:-)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-02-05
把变量b定义为浮点型,输出函数里用%f格式追问

老师,你好,我所掌握的是,即使int定义,只要有浮点型运算,电脑就会自动转为浮点型的,你说的这个我知道,这也是一种解决方案

追答

你说的那种自动转换是在运算过程中进行的,别忘了,赋值号也是运算符,虽然右边的运算结果不是整数,但赋给左边的整型变量时,就以变量的类型为准进行转换,这也是一种强制转换

追问

所以只有这一种解决方案吗,谢了,大晚上的,我初学者,喜欢钻牛角

追答

追问

我突然懂了!谢了啊,我看的那个教学视频,他直接输出的那个计算式,没用b表示!这样可以,谢了啊

追答

采纳吧

追问

多问一句啊,那个当int的数据用%f输出,是不是出来一个很大的数字,并且无论怎样变化a,运行结果总是那个数字!

追答

用浮点数格式输出整数时,会有小数点和六个0

本回答被提问者采纳
相似回答