gpt4 book ai didi

将字符串转换为 C 中的 double 变量

转载 作者:太空狗 更新时间:2023-10-29 16:40:04 26 4
gpt4 key购买 nike

我写了下面的代码。它应该将像 "88" 这样的字符串转换为 double 值 88 并打印它

void convertType(char* value)
{
int i = 0;
char ch;
double ret = 0;
while((ch = value[i])!= '\0')
{
ret = ret*10 + (ch - '0');
i++;
}
printf("%d",ret); //or %lf..
}

// input string :88

但它总是打印0。但是当我将 ret 类型更改为 int 时,它工作正常。当类型为 floatdouble 时,它会打印 0。那么,为什么我会得到这些模棱两可的结果?

最佳答案

使用 sscanf(头文件 stdio.h 或 C++ 中的 cstdio):

char str[] = "12345.56";
double d;

sscanf(str, "%lf", &d);

printf("%lf", d);

关于将字符串转换为 C 中的 double 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10075294/

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