读书人

问个比较白痴的有关问题。

发布时间: 2013-04-20 19:43:01 作者: rapoo

问个比较白痴的问题。。。
signed short类型如何转换成float?
代码如下:
signed short a = 256;
float b = (float)(a/100);
printf("%.2f",b);
运行后显示是2.00,该怎么转换才能保留小数点后面的数?

[解决办法]
100修改为100.0
[解决办法]
float b = (float)(a/(float)100);
[解决办法]

引用:
100修改为100.0
正解,float b = a/100.0;即可,无需强转,编译器自动进行隐式转换
。a/100结果取整 2,如果是a/100.0结果就有小数部分2.560000
[解决办法]
a / 100 是整除,最后得到的肯定是整数2,然后转换为float变成2.00;
要得到2.56最简单的方法楼上已经说了,两种改法都可以。只不过100改成100.0之后得到的应该是double型,在这里没什么关系。总之要注意类型自动转换就是了。
[解决办法]
a / 100 是整除 ,float b = (float)a/100;
[解决办法]
引用:
引用:100修改为100.0正解,float b = a/100.0;即可,无需强转,编译器自动进行隐式转换
。a/100结果取整 2,如果是a/100.0结果就有小数部分2.560000




引用:
a / 100 是整除,最后得到的肯定是整数2,然后转换为float变成2.00;
要得到2.56最简单的方法楼上已经说了,两种改法都可以。只不过100改成100.0之后得到的应该是double型,在这里没什么关系。总之要注意类型自动转换就是了。



++
[解决办法]
100改成100.0,即可
编译器会自动帮你转换的!

读书人网 >C语言

热点推荐