2
#include<stdio.h>
int main()
{
int num = 255;
num = num / 10;
char buf[5];
itoa(num, buf,10);
printf("%s", buf);
return 0.
}

我试图将整数除以 10,但得到的解是 25(我应该得到 25.5)。稍后我将其转换为整数到 ASCII 函数的字符串。我很难将该数字除以 10。

4

5 回答 5

2

您需要使用浮点变量来获得浮点结果。

尝试

float num = 255;
num = num / 10;
于 2013-05-27T12:02:52.583 回答
1

一个整数除以一个整数是一个整数,所以结果是 25。您需要先将除数或分母转换为浮动或加倍。

要将浮点数输出到控制台,您可以使用with printf%f%F%e或格式字符串。您可能还想指定宽度和精度(请参阅printf)。%E%g%G

如果确实需要字符串缓冲区,可以使用sprintf将结果写入缓冲区。

#include<stdio.h>
int main()
{
    float num = 255f;
    num = num / 10;
    printf("%f\n", num);
    return 0.
}
于 2013-05-27T12:28:34.940 回答
1

将浮点值存储为整数时,小数部分被丢弃。所以 in num = num / 10;num 将是 25,因为它是一个 int。

于 2013-05-27T12:03:57.443 回答
0

首先, num 是(如所指出的)整数,因此不能取小数值。

其次,itoa不是标准的。您应该使用 snprintf (这不仅是标准的,而且不容易受到缓冲区溢出的影响)。

所以:

#include <stdio.h>

int main()
{
    float num = 255;
    num = num / 10;

    char buf[5];
    snprintf(buf, sizeof(buf), "%g", num);
    printf("%s", buf);
    return 0.
}

会做你想做的。

于 2013-05-27T12:45:15.190 回答
0
#include <stdio.h>
#include <string.h>

char buffer[20];

void main() {
    float num = 255;
    num = num / 10;

    sprintf(buffer, "%g", num );

    printf("%s",buffer);
}
于 2013-05-27T12:17:30.393 回答