学习其他语言的时候明白了这个问题!这个问题是由于精度不一致导致无法进行除法运算!(通过测试只有浮点型做取余运算的话就会报错,是由于精度问题导致无法取余)


碰到这样上述标题这样的一个问题:
当我们这样使用的话

float a;
cin>>a;
if(20%a==0) cout<<20/a;//这个地方会报错
else cout<<20/a+1;

当a为浮点数的时候,if条件句这里会出现问问题。

如果我们需要判断20是否为a的倍数:我们可以使用向上取整ceil(20/a),结果为4.1的话就是5,结果4的话就是4。

向下取整我们可以使用floor(20/a)或者int(20/a)

使用ceil和floor需要#include < cmath >

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐