高手请进 判断输入小数的位数
int main()
{
float a;
scanf( "%d ",&a)
if(a*100==(int)(a*100))
printf( "2 digits\n ");
else
return 0;
}
我想限定输入的小数不大于两位,但输入0.01等两位小数都会跳到return 0;
a*100==(int)(a*100)为什么不行?
还有其他办法吗?求教
[解决办法]
scanf( "%f ",&a)
[解决办法]
用string类型接收,然后判断小数点后面的字符不超过2个~
[解决办法]
你输入的float有精度问题,即使你输入0.02,但计算机赋值不是单单的就把0.02给了a,后面一般还有数字,a*100就是一个带小数的浮点数,怎么能与一个int值相等
[解决办法]
a*100 > (float)(int)(a*100) && a > 0