gpt4 book ai didi

c - 从函数返回时小数部分丢失

转载 作者:行者123 更新时间:2023-11-30 21:31:04 24 4
gpt4 key购买 nike

我在从函数传递十进制数时遇到问题 - 请查看代码。

我在位置 2 上的函数 main 的参数中搜索数字的这个函数工作得很好,但是如果我调用该函数,它不会返回小数部分。例如,输入是 15.25 - 函数取 15.25,但是当该值返回到变量时,它显示 15.00。你有什么想法吗?

顺便说一句:对于这个例子,我使该函数变得更加简单。

int arg_find(char *argv[]) { 
double result;
int i = 0;
double dec = 1;
while ((argv[2][i] >= '0' && argv[2][i] <= '9') || argv[2][i] == '.') {
// lets say in argv[2] is 14.25
if (argv[2][i] == '.') {
decimal = true;
i++;
}
if (decimal == true) {
dec *= 10;
result += (argv[2][i] - '0')/dec;
i++;
} else {
result = result * 10 + (argv[2][i] - '0');
i++;
}
}
}

现在,当我调用该函数时

double result2;
result2 = arg_find(argv); //in result2 is 14

最佳答案

原因非常简单明了,因为您的函数 arg_find 返回一个整数而不是 float ,因此您面临问题。

您可以尝试将其定义为:

double arg_find(char *argv[])

而不是

int arg_find(char *argv[])

关于c - 从函数返回时小数部分丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20166773/

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