C语言四舍五入的问题 c语言中实数的四舍五入问题?

C\u8bed\u8a00\u4e2d\u5173\u4e8e\u56db\u820d\u4e94\u5165\u7684\u95ee\u9898\u3002

\u5982\u679c\u628as=((int)(s*10000+0.5))/10000.0 \u53bb\u6389
\u518dprintf("%.4f",s);
\u8f93\u51653.1415926
\u90a3\u4e48\u6700\u540e\u7ed3\u679c \u662f
3.1415
\u4e0d\u4f1a\u662f3.1416
cpu\u6ca1\u6709\u56db\u820d\u4e94\u5165\u7684\u529f\u80fd
\u53ea\u80fd\u9760\u7f16\u7a0b\u5b9e\u73b0
s=((int)(s*10000+0.5))/10000.0
\u5c31\u662f \u7528\u5566\u5bf9\u5c0f\u6570\u70b9\u540e\u7b2c4\u4f4d\u5b9e\u73b0\u56db\u820d\u4e94\u5165\u7684
\u4f60\u53ef\u4ee5\u9a8c\u8bc1\u4e00\u4e0b

\u56e0\u4e3a\u6d6e\u70b9\u6570\u51e0\u4e4e\u90fd\u662f\u8fd1\u4f3c\u7684\uff0cdouble\u53ea\u670964\u4f4d\u4e8c\u8fdb\u5236\uff0c\u5176\u4e2d\u7528\u4e8e\u8868\u6570\u7684\u53ea\u670952\u4f4d\uff0c1234.25\u53d8\u6210\u4e8c\u8fdb\u5236\u53ef\u80fd\u662f\u65e0\u9650\u591a\u4f4d\uff0c52\u4f4d\u4e0d\u8db3\u5341\u8fdb\u52361234.25\u8fd9\u4e2a\u6570\uff0c\u800cC\u7684\u56db\u820d\u4e94\u5165\u89c4\u5219\u662f\u4e25\u683c\u6309\u4e0d\u8db35\u820d\uff0c\u8db35\u8fdb\u7684\uff0c\u6240\u4ee5\u8fd9\u79cd\u73b0\u8c61\u5f88\u6b63\u5e38\u3002

这样,你把这个小数,乘以10的8次方,然后对结果取整(也就是强制转化为int型),然后对这个取整后的int型,再除以10的8次方,就搞定了.

如果你想四舍五入,比方说,想要3.14159,四舍五入取小数点后3位,
你可以将3.14159*1000,得到3141.59,然后再加上0.5,得到3142.09,然后再取整(强制转化为INT型),得到3142,然后再除以1000,就得到你想要的小数点后3位的四舍五入了,就是3.142.
如果不想要四舍五入,直接截取,就不要加上0.5

我没看清。
乘10的8个零,然后转换为int型。然后除以10的8个零要小数点,就是(int)(p*100000000)/100000000.0就可以不四舍五入了这个比较笨的方法

#include "stdio.h" /* 输入一个double型数据 ,保留两位小数,虽然程序有点啰嗦,但还是行的*/
main()
{
double x,a;
printf("请输入一个double型的小数");
scanf("%lf",&x);
x=x*100;
a=x;
(int) (a);
x=x+0.5;
(int) (x);
if(x=a)
{ a=a/100;
printf("%.2lf",a);}
else
{x=x/100;
printf("%.2lf\n",x);}
}

只是取小数点后8位…并不四舍五入。

C语言中一般不四舍五入,而是只考虑
整数部分
,如
int
i,j;
i=7/5;(即1.4)
j=9/6;(即1.5)
printf("%d
%d",i,j);
输出均为1

  • c璇█涓璬ouble绫诲瀷鏁版嵁鍥涜垗浜斿叆鍒扮櫨鍒嗕綅鏄灏?
    绛旓細渚嬪double鍨嬬殑鏁版嵁涓篴=5.1413锛岀▼搴忓涓嬶細incloud <stdio.h> main( ){ double a锛沺rintf("璇疯緭鍏ヤ竴涓猟ouble鍨嬫暟鎹細鈥濓級锛沘= int (a*100+0.5)/100 锛沺rintf("%lf",a)銆倉 杩欐椂鍊檖rintf杈撳嚭鐨勭粨鏋滃皢鏄5.14銆
  • c璇█鍥涜垗浜斿叆闂
    绛旓細printf闄愬畾浣嶆暟杈撳嚭鏃舵槸4鑸5鍏ャ俤ouble->float锛屾槸涓嶄細4鑸5鍏ョ殑锛岀洿鎺ヤ涪寮冨熬閮ㄧ殑鍙傛暟銆俰nclude <iostream>#include<cstdio>#include<cmath>using namespace std;int main(){ printf("%lf\n",M_PI); printf("%.4lf\n",M_PI); printf("%.3lf\n",M_PI); return 0;} ...
  • c璇█鐨勫洓鑸嶄簲鍏ラ棶棰
    绛旓細include"stdio.h"main(){float a,x;//int b=(int)a;/// 杩欓噷b鏄0 绉诲埌涓嬮潰鍘诲氨琛屼簡銆俻rintf("杈撳叆涓涓崟绮惧害锛");scanf("%f",&a);int b=(int)a;// b鍐欏湪杩欓噷 x=a-b;if(x>=0.5){b=a+1;printf("鍥涜垗浜斿叆鍚庣殑缁撴灉涓%d",b);} else{b=a-1;printf("鍥涜垗浜斿叆鍚庣殑...
  • c璇█鐨勫洓鑸嶄簲鍏ラ棶棰
    绛旓細C璇█涓竴鑸笉鍥涜垗浜斿叆锛岃屾槸鍙冭檻鏁存暟閮ㄥ垎锛屽 int i,j;i=7/5;(鍗1.4)j=9/6;(鍗1.5)printf("%d %d",i,j);杈撳嚭鍧囦负1
  • 濡備綍鐢c璇█瀹炵幇鏁存暟鐨鍥涜垗浜斿叆璁$畻缁撴灉?
    绛旓細1銆侀鍏堟墦寮DEV C++杞欢锛岀偣鍑烩滄柊寤烘簮浠g爜鈥濓紝鍦ㄧ紪杈戦〉闈㈣緭鍏ヤ互涓嬩唬鐮併2銆佸洜涓洪鐩姹傛垜浠厛杈撳叆涓涓暣鏁帮紝鎵浠ュ湪瀹氫箟鍙橀噺鏃讹紝灏卞簲璇ュ皢鍏跺畾涔変负鏁存暟鍨嬶紝娉ㄦ剰锛屽湪杈撳叆锛岃緭鍑哄嚱鏁颁腑锛屾暣鏁板瀷瀵瑰簲鐨勬槸鈥%d鈥濄3銆佹帴涓嬫潵灏辫瀵硅緭鍏ョ殑鏁存暟杩涜鍒ゆ柇锛屽湪C璇█涓紝if鏄垽鏂鍙ワ紝鎵浠ョ敤瀹冩潵瀵规暣鏁拌繘琛屽垽鏂俰f...
  • 璇烽棶c璇█濡備綍瀹炵幇鍥涜垗浜斿叆?
    绛旓細incloud <stdio> int main(void锛墈 float a 锛泂canf锛堚%f鈥濓紝&a锛夛紱a=锛坕nt锛夛紙a*1000+0.5锛/1000.0锛沺rintf 锛堚%0.3f鈥濓紝a锛夛紱return 0锛泒
  • c璇█绮剧‘灏忔暟浣嶆暟浼氭庢牱鑸嶅幓鍚庨潰鐨勫皬鏁
    绛旓細1銆佹鏁皒鍥涜垗浜斿叆鐨鎶宸:doublex;x=(int)(x+0.5)锛2銆佷妇渚:鑻ユ鏁拌渚濊垗鍘绘硶绮剧‘鍒板皬鏁扮偣寰岀浜屼綅锛涗緥濡6.2367鈥>(int)(623.67)/100.0=623/100.0=6.23 doublex;x=(int)(x*100)/100.0;//娉ㄦ剰鏄櫎浠100.0锛3銆佷妇渚:鑻ユ鏁拌鍥涜垗浜斿叆绮剧‘鍒板皬鏁扮偣寰岀浜屼綅锛屽嵆x*100鍥涜垗浜斿叆...
  • C璇█鏈夋病鏈夋暟鎹殑鍥涜垗浜斿叆?浠涔堟儏鍐典笅浼氱敤鍒板洓鑸嶄簲鍏?鏁版嵁绫诲瀷...
    绛旓細C璇█涓殑float鍜宒ouble绫诲瀷鏁版嵁鏄诞鐐规暟锛屾墍浠ュ皬鏁伴儴鍒嗗氨瀛樺湪鍥涜垗浜斿叆闂锛屽綋鎸囧畾杈撳嚭浣嶆暟鍦ㄧ簿搴﹁寖鍥翠箣鍐呮椂锛岀郴缁熶細鑷姩鑸嶅叆锛屾棤闇浜哄伐骞查锛屽鏋滃皬鏁伴儴鍒嗕篃鍦ㄧ簿搴﹁寖鍥村唴锛屾瘮濡10.0/2.0 = 5.0锛2浣嶄互涓婄殑杈撳嚭浣嶆暟鏃讹紝鍚庨潰鐨勯兘鏄0锛屾鏃讹紝褰撶劧涓嶉渶瑕佽垗鍏ヤ簡銆傛暟鎹被鍨嬭浆鎹㈡湁涓ょ鏂瑰紡锛屼竴绉嶆槸榛樿...
  • c璇█鐨鍏充簬 : 瀵逛竴涓猟ouble鍨嬫暟鎹繘琛鍥涜垗浜斿叆杩愮畻
    绛旓細瀵筪ouble鏁版嵁绫诲瀷杩涜鍥涜垗浜斿叆杩愮畻锛屽彲浠ュ埄鐢╠ouble杞负鏁村瀷鏃跺己鍒跺彇鏁存潵鍋氬埌銆1 灏哾ouble绫诲瀷鏁版嵁锛屽己鍒惰浆鎹负int绫诲瀷锛屼細寮哄埗鎴彇鏁存暟閮ㄥ垎銆傛瘮濡俤ouble a = 1.23;(int)a鐨勫煎氨鏄1銆2 鐢变簬鏄己鍒跺彇鏁达紝鎵浠ュ嵆浣挎槸1.9杞负int鍚庯紝鍚屾牱鏄1锛岃繖涓鍥涜垗浜斿叆鐨瑕佹眰涓嶇銆傛墍浠ュ彲浠ヨ浆鎹竴涓嬬畻娉曪紝鍋(int)...
  • c璇█鐨涓閬撻鐩 涓轰粈涔堜細鍥涜垗浜斿叆?
    绛旓細printf("%f,%5.4f,%3.3f",f,f,f);5.4f,%3.3f 琛ㄧず鐢╢loat娴偣鍨嬫暟鎹緭鍑猴紝绗竴涓槸淇濈暀4浣嶅皬鏁般佽緭鍑哄搴︿负5锛屽疄闄呴暱搴﹁秴杩5灏辨寜瀹為檯浣嶆暟杈撳嚭锛屽皬鏁颁綅鏁拌秴杩4浣嶉儴鍒嗚鎴幓銆,%3.3f琛ㄧず鐢╢loat娴偣鍨嬫暟鎹緭鍑猴紝绗竴涓槸淇濈暀3浣嶅皬鏁般佽緭鍑哄搴︿负3锛屽疄闄呴暱搴﹁秴杩3灏辨寜瀹為檯浣嶆暟杈撳嚭锛屽皬鏁颁綅鏁...
  • 扩展阅读:c语言简单问题及答案 ... c语言常见问题提问 ... c++如何四舍五入取整数 ... c语言遵循四舍五入吗 ... c语言算法难题 ... c语言讨论话题 ... c语言int四舍五入取整 ... c语言小数点四舍五入 ... c语言过程中遇到的问题 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网