#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で割るのに問題があります。
整数を整数で割ると整数なので、結果として 25 が得られます。まず、除数または分母を float または double にキャストする必要があります。
float をコンソールに出力するには、、、、、またはフォーマット文字列を使用printf
できます。幅と精度を指定することもできます ( printfを参照)。%f
%F
%e
%E
%g
%G
本当に文字列バッファーが必要な場合は、 を使用sprintf
して結果をバッファーに書き込むことができます。
#include<stdio.h>
int main()
{
float num = 255f;
num = num / 10;
printf("%f\n", num);
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);
}
まず、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.
}
あなたが望むことをします。