gpt4 book ai didi

c++ - 测试给定数字是否为整数

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:48:33 25 4
gpt4 key购买 nike

我正在尝试实现用户定义的函数来测试数字是否为整数:

#include <iostream>
#include <typeinfo>
using namespace std;
bool integer(float k){
if (k==20000) return false;;
if (k==(-20000)) return false;
if (k==0) return true;
if (k<0) return integer(k+1);
else if(k>0) return integer (k-1);
return false;
}
int main(){

float s=23.34;
float s1=45;
cout<<boolalpha;
cout<<integer(s)<<endl;
cout<<integer(s1)<<endl;
return 0;

}

所以想法是,如果一个数是整数,不管它是负数还是正数,如果我们将它减少或增加一,我们必须得到零,但问题是,我们如何才能为增加和减少创建上限和下限?

最佳答案

#include <cmath>

bool is_integer(float k)
{
return std::floor(k) == k;
}

此解决方案应该适用于 k 的所有可能值。我很确定在这种情况下,您可以使用 == 安全地比较 float 。

尝试深思熟虑地命名函数。 integer 没有给出它实际上做什么的任何线索,所以我将函数名称更改为更有意义的名称。

对于 future ,测试一个数字是否为整数应该感觉是一个非常简单的操作,所以你应该有一种强烈的感觉,即最好的解决方案将非常简单。我希望您意识到您最初的解决方案是荒谬的,原因有很多(最大的原因:在绝大多数情况下它会导致堆栈溢出)。

关于c++ - 测试给定数字是否为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7646512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com