こんにちは。
以下のようなプログラムを記述したのですが、
Xを0.0954321から"9"に(少数点第3位以下を切り捨て)
Yを-0.1054321から"-10"に(少数点第3位以下を切り捨て)
したいのですが、
X_Answer = 10
Y_Answer = -11
と四捨五入された値が返ってきてしまいます。
少数点第3位以下を切り捨てするためにはどうしたらいいのでしょうか?
float X,Y;
char Xdata[10]={0};
char Ydata[10]={0};
int X_Answer, Y_Answer;
X = 0.0954321;
Y = -0.1054321;
X = X * 100;
Y = Y * 100;
sprintf(Xdata, "%5.0f", X);
sprintf(Ydata, "%5.0f", Y);
X_Answer = atoi(Xdata);
Y_Answer = atoi(Ydata);
以上、宜しくお願いします。
この程度なら自分の場合はキャストで小数点以下を切るに一票。
#include <stdio.h>
#include <stdlib.h>
int main()
{
float X,Y;
char Xdata[10]={0};
char Ydata[10]={0};
int X_Answer, Y_Answer;
X = 0.0954321;
Y = -0.1054321;
X = X * 100;
Y = Y * 100;
sprintf(Xdata, "%d", (int)X);
sprintf(Ydata, "%d", (int)Y);
X_Answer = atoi(Xdata);
Y_Answer = atoi(Ydata);
printf("X_Answer is [%d]\n",X_Answer);
printf("Y_Answer is [%d]\n",Y_Answer);
}
上記の方法で、解決出来ました。
ありがとうございました。
上記の方法で、解決出来ました。
ありがとうございました。
ツイート | ![]() |