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相同。