[理工] 程设 倍精准浮点数的问题

楼主: a0953781935 (欧尼酱)   2019-08-12 13:56:39
想问一下这个程式
int main()
{
double f,c;
printf("please enter celsius degree\n");
scanf("%lf",&c);
f=(9/5.0)*c+32;
printf("f is %16.2f",f);
return 0;
}
为什么f=(9/5.0)*c+32要打5.0才会是正确的
如果打f=(9/5)*c+32跑出来就是f=c+32的值而已?
作者: hinanaitenco (桃子好吃)   2019-08-12 14:07:00
当成整数做运算了啊
作者: mi981027 (呱呱竹)   2019-08-12 14:07:00
因为c里面9/5是整数除法,会只取商数,就是1如果你打9/5.0变整数除浮点数编译器会自动转换型别,变成浮点数除浮点数
楼主: a0953781935 (欧尼酱)   2019-08-12 14:13:00
喔喔,感谢你喔好像满基本的,抱歉占了一个版面
作者: mathtsai (mathtsai)   2019-08-12 14:25:00
你可以打c*9/5 这样应该就是浮点数惹

Links booklink

Contact Us: admin [ a t ] ucptt.com