gpt4 book ai didi

C++判断一个数是否为整数

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:25:43 26 4
gpt4 key购买 nike

我有一个用 C++ 编写的程序,我在其中除以两个数字,我需要知道答案是否为整数。我正在使用的是:

if(fmod(answer,1) == 0)

我也试过这个:

if(floor(answer)==answer)

问题是答案通常是一个 5 位数字,但有很多小数点。例如,答案可以是:58696.000000000000000025658 并且程序认为这是一个整数。

我有什么办法可以让它工作吗?

我正在除法 double a/double b= double answer

(有时会有30多位小数)

谢谢!

编辑:a 和 b 是以千为单位的数字(大约 100,000),然后将它们计算为 2 和 3 的幂,加在一起并相除(根据一个复杂的公式)。所以我插入了各种 a 和 b 值并查看答案。我只会保留使答案成为整数的 a 和 b 值。我得到的其中一个答案的一个例子是:218624,我上面的程序认为它是一个整数,但它实际上是:218624.00000000000000000056982 所​​以我需要一个代码来区分超过 20-30 位小数的整数。

最佳答案

您可以在 cmath.h 中使用 std::modf:

double integral;
if(std::modf(answer, &integral) == 0.0)

answer的整数部分存储在fraction中,std::modf的返回值是的小数部分answeranswer 的符号相同。

关于C++判断一个数是否为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19613061/

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