c++ - x * 0.1 和 x/10 之间的区别?

标签 c++

我是一名高中生,不久前我看到乘法比除法好。从那以后,在没有任何证据证明它是真实的或不知道自己现在如何找到它的情况下,我试图修改我的代码,以便稍微好一点。
这是一个问题,我想使用递归找到数字中的最大数字。
这个正在工作。

#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 .

关于c++ - x * 0.1 和 x/10 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65542341/

相关文章:

c++ - 类成员是另一个类的实例

java - 注释会影响编译时间吗?

c++ - 以附加模式打开管道

c++ - 使用已被占用的函数名称

c++ - Yaml-cpp 解析不起作用冒号后缺少空格

c++ - C++ typedef 语句中的 *unspecified* 是什么意思?

c++ - “Promoted Widgets”对话框中的 "Global include"复选框是什么意思?

c++ - 如何解决 Qt 中的这个设计障碍?

C++ double dispatch 观察者通知

c++ - 微 Controller - 按钮 'holding down' 监听器