gpt4 book ai didi

c - 小数点后面的值 浮点值

转载 作者:行者123 更新时间:2023-11-30 18:40:26 24 4
gpt4 key购买 nike

编写 if 语句来确定 float 变量是否保留小数点后面的值。

示例代码:

AAA = 123.456

if( AAA has value behind decimal = true)

{

printf("true")

}

// ...or user input changes value of AAA...

AAA = 123.000


if( AAA has value behind decimal = true)

{

printf("false")

}

有什么帮助吗?

最佳答案

#include <stdio.h>
#include <math.h>

int main(void)
{
double param, fractpart, intpart;

param = 123.456;
fractpart = modf(param , &intpart);
if (fractpart != 0.0) {
printf("true\n");
} else {
printf("false\n");
}
return 0;
}

请注意,由于舍入误差和截断,计算过程中会出现数值误差,例如:

0.11 - (0.07 + 0.04) != 0.0

您可以控制这些舍入误差(根据您的比例调整 EPSILON 值):

#include <stdio.h>
#include <math.h>

#define EPSILON 0.00000000001

int almost_zero(double x)
{
return fabs(x) < EPSILON;
}

int main(void)
{

double param, fractpart, intpart;

param = 0.11 - (0.07 + 0.04);
fractpart = modf(param , &intpart);
if (!almost_zero(fractpart)) {
printf("true\n");
} else {
printf("false\n");
}
return 0;
}

关于c - 小数点后面的值 浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26114949/

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