c++ - x * 0.1 和 x / 10 之间的差异?
问题描述
我是一名高中生,不久前我看到乘法比除法好。从那以后,在没有任何证据证明它是真是假的情况下,我现在也不知道如何自己找到它,我试图修改我的代码以适应那个稍微好一点的时间。
这是一个问题,我想使用递归找到数字中的最大数字。
这个正在工作。
#include <iostream>
using namespace std;
int minn = 9;
int digit(int n)
{
if(minn > n % 10)
minn = n % 10;
if(!(n / 10))
return minn;
else
return digit(n / 10);
}
int main()
{
int x;
cin >> x;
cout << digit(x);
return 0;
}
但这不起作用。
#include <iostream>
using namespace std;
int minn = 9;
int digit(int n)
{
if(minn > n % 10)
minn = n % 10;
if(!(n * 0.1))
return minn;
else
return digit(n / 10);
}
int main()
{
int x;
cin >> x;
cout << digit(x);
return 0;
}
唯一不同的是,破一if(!(n * 0.1))
用不了if(!(n / 10))
。
有人可以为我或任何寻求帮助的人澄清一下 x * 0.1 和 x / 10 有什么区别?
感谢大家点击问题并尝试提供帮助!
解决方案
0.1
是双精度类型,10
是整数类型。
例如,当除两个整数时n / 10
,您将得到整数除法(例如6/10
将等于0
)。
并且您的支票在使用时会有所不同,6 * 0.1
因为这将等于0.6
。
推荐阅读
- pandas - 如果不在列表中,熊猫将替换字符串值
- nginx - 如何在 nginx 中使用环境变量来选择条件上游配置
- python - 创建一个零的 3D 张量,在 numpy/jax 中的每个切片上随机放置一个“1”
- c# - 如何动态创建表达式
> 带有字符串参数的谓词? - java - 如果将旧日期与当前日期一起传递,则 Date before 方法返回 false
- keypress - 字符转换
- javascript - 从数组映射 wordpress 帖子
- javascript - 计算表格中复选框的数量和数量
- c# - Json数据检索
- apache - 使用 .htaccess 始终重定向到 index.php 时出现 500 内部服务器错误