gpt4 book ai didi

c++ - modf 不能正常工作

转载 作者:太空宇宙 更新时间:2023-11-04 16:19:30 25 4
gpt4 key购买 nike

如果小数部分的前 3 位数字包含“9”,则应显示此代码,但不起作用。令人惊讶的是,“mod”变量对于任何数字都是 0。

int main( void )
{
float number, dmod;
int mod;
double digit_1, digit_2, digit_3;
double search=9;

cout<<"Enter the number:";
cin>>number;

mod = modf(number, &dmod);
digit_1 = mod /100 % 10;
digit_2 = mod /10 % 10;
digit_3 = mod /1 % 10;

if( (digit_1 == search) || (digit_2 == search) || (digit_3 ==search) )
{
cout<<"mod contains 9"<<endl;
}
else
{
cout<<"mod does not contains 9"<<endl;
}
}

最佳答案

您的问题是 modf 返回小数部分,而不是表示小数部分的整数。返回的值始终小于 1,然后当分配给 int 时,它会被截断为 0。

也许您想将返回乘以 1000:mod = modf(number, &dmod) * 1000.0;

关于c++ - modf 不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18879578/

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