我已经编写了以下代码。它应该将字符串转换"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
,它工作正常。当类型为float
或double
时,它会打印0
。那么为什么我会得到这些模棱两可的结果呢?