#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。
您需要使用浮点变量来获得浮点结果。
尝试
float num = 255;
num = num / 10;
一个整数除以一个整数是一个整数,所以结果是 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.
}
将浮点值存储为整数时,小数部分被丢弃。所以 in num = num / 10;
num 将是 25,因为它是一个 int。
首先, 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.
}
会做你想做的。
#include <stdio.h>
#include <string.h>
char buffer[20];
void main() {
float num = 255;
num = num / 10;
sprintf(buffer, "%g", num );
printf("%s",buffer);
}