17

丸めずにCで小数点以下を切り捨てるにはどうすればよいですか?

たとえば、番号が4.48

それはただ表示されます4.4

%.1fに丸める4.5

4

6 に答える 6

14

整数除算が切り捨てられ、丸められないという事実を (ab) 使用できます。

float original = 4.48;

int tmp = original * 10; // 44.8 truncated to 44

float truncated = tmp / 10.0; // 4.4
于 2012-10-06T21:27:34.827 に答える
6

簡単な方法は次のとおりです。

printf("%.1f",trunc(x*10.0)/10.0);
于 2012-10-06T21:27:01.177 に答える
3

コンパイラがC99をサポートしている場合は、以下を使用できるはずですtrunc()

float f = 4.56f;
f = truncf(f * 10.0) / 10.0;
于 2012-10-06T21:32:56.630 に答える
1

これはうまくいくはずです

double d = 4.48;
d *= 10.;
int i = d;
d = (double) i / 10.; 
于 2012-10-06T21:27:30.053 に答える
0
float myval = 4.48;
float tr = ((int)(myval*10)) / 10.0;
于 2012-10-06T21:28:35.667 に答える