c語言小數四捨五入
㈠ c璇璦綺劇『灝忔暟浣嶆暟浼氭庢牱鑸嶅幓鍚庨潰鐨勫皬鏁
1銆佹f暟x鍥涜垗浜斿叆鐨勬妧宸:
doublex;
x=(int)(x+0.5)錛
2銆佷婦渚:鑻ユf暟瑕佷緷鑸嶅幓娉曠簿紜鍒板皬鏁扮偣寰岀浜屼綅錛
渚嬪6.2367鈥>(int)(623.67)/100.0=623/100.0=6.23
doublex;
x=(int)(x*100)/100.0;//娉ㄦ剰鏄闄や互100.0錛
3銆佷婦渚:鑻ユf暟瑕佸洓鑸嶄簲鍏ョ簿紜鍒板皬鏁扮偣寰岀浜屼綅錛屽嵆x*100鍥涜垗浜斿叆鍐嶉櫎浠100錛
x=(int)(x*100+0.5)/100.0;
鎵╁睍璧勬枡
C璇璦淇濈暀灝忔暟鐐瑰悗涓浣
渚嬶細
#include<stdio.h>
voidmain()
{
floata=1,b=2,c;//鍏堝畾涔変竴涓瀹炲瀷鏁版嵁
c=a/b;
printf("%.1f ",c);//閲嶇偣鍦ㄤ簬%.1f
}
㈡ c語言 四捨五入
C,
(int)(x*100+0.5)中x*100就把小數點後兩位移到整數部分了,然後強制轉換為int,再除以float,所以結果為小數點後兩位,其他也可以,不過不是保留兩位小數。
你假設x=123.456
x*100+0.5=12345.6+0.5=12346.1//這里加0.5是為了4舌5入
然後強制轉化成int 為12346
再除以100
結果 為 123.46
這樣就做到了保留到小數點後兩位,並將第3位四捨五入
㈢ c璇璦涓嫻鐐規暟鍥涜垗浜斿叆 銆 淇濈暀涓涓嫻鐐規暟灝忔暟鐐瑰悗鐨6浣,絎3浣嶈佸洓鑸嶄簲鍏ャ傚 1.1234.567鍒1234.570000
鎰忔濇槸絎3浣嶄箣鍚庣殑鏁伴兘鑸嶅純鍚楋紵
鍙浠ヨ繖鏍鳳紝
#include <stdio.h>
int main()
{
double d1 = 1234.567;
double d2 = d1 - (int)d1; // 奼傚嚭灝忔暟閮ㄥ垎
int i = d2 * 1000; // 鍙栧嚭灝忔暟鍚3浣
if (i%10 >=5 )
{
i -= i%10;
i += 10; // 鍥涜垗浜斿叆
}
d1 = (int)d1 + (double)i / 1000;
printf("d1 = %lf ", d1);
return 0;
}
㈣ C語言怎麼四捨五入
利用取整。
比如 四捨五入到千分位,可以
(int)(x*1000+0.5)/1000.0
十分位(int)(x*10+0.5)/10.0
其他類似,只改變其中倍數的值即可。
㈤ c語言 四捨五入
# incloud <stdio>
int main(void)
{
float a ;
scanf(「%f」,&a);
a=(int)(a*1000+0.5)/1000.0;
printf (「%0.3f」,a);
return 0;
}
(5)c語言小數四捨五入擴展閱讀:
其他方法實現四捨五入:
int myround(double indata,int precision,double * outdata)
{
long pre = 1,i;
for(i = 0; i <precision; i ++)pre = pre * 10;
if(cy_FloatCompare(indata,0.00)> 0)
* outdata =(int)((indata * pre)+0.5)/100.00;
else
* outdata =(int)((indata * pre)-0.5)/100.00;
return 0;
}
// cy_FloatCompare是浮點數與0比較的函數,假設它存在。返回值與strcmp相同。