C语言如何实现输出浮点数小数点两位(四舍五入法),但若小数点最后位为零则舍去?? c语言编程序实现:一个带有两位小数的浮点数的四舍五入。怎么做...

\u7528C\u8bed\u8a00\u600e\u4e48\u5b9e\u73b0\u6d6e\u70b9\u6570\u7684\u56db\u820d\u4e94\u5165\uff0c\u4fdd\u7559\u4e24\u4f4d\u5c0f\u6570\u70b9

C\u8bed\u8a00\u600e\u4e48\u5b9e\u73b0\u6d6e\u70b9\u6570\u7684\u56db\u820d\u4e94\u5165\uff0c\u4fdd\u7559\u4e24\u4f4d\u5c0f\u6570\u7684\u8bbe\u8ba1\u8fc7\u7a0b\u4e3a\uff1a
\u5b9a\u4e49\u6d6e\u70b9\u70b9\u6570\u53d8\u91cfdf\uff0c\u8f93\u5165\u6d6e\u70b9\u6570
\u6d6e\u70b9\u6570df\u6269\u5927100\u500d
\u6d6e\u70b9\u6570df\u589e\u52a00.5
\u5229\u7528floor()\u51fd\u6570\u5f97\u5230\u6700\u63a5\u8fd1df\u6570\uff0c\u4f46\u4e0d\u5927\u4e8edf\u7684\u6574\u6570\uff08\u5b8c\u6210\u56db\u820d\u4e94\u5165\uff09\u3002\u4e0d\u80fd\u7528int\u5f3a\u5236\u8f6c\u6362\uff0c\u5426\u5219\uff0c\u6570\u636e\u8d85\u8fc7int\u8303\u56f4\u5c31\u4f1a\u51fa\u73b0\u9519\u8bef\u3002
\u6d6e\u70b9\u6570df\u7f29\u5c0f100\u500d\u5f97\u5230\u6709\u4e24\u4f4d\u5c0f\u6570\u7684\u6d6e\u70b9\u6570
\u6309%.2f\u8f93\u51fa\u7ed3\u679c\u3002
\u53c2\u8003\u4ee3\u7801\uff1a
#include #include void main(){ double df=0; printf("input d: "); scanf("%lf", &df ); df *= 100 ; df += 0.5 ; df =floor(df); df /= 100; printf("d=%.2f\n", df );}

\u5176\u5b9eC\u8bed\u8a00\u672c\u6765\u5c31\u63d0\u4f9b\u56db\u820d\u4e94\u5165\u7684\u529f\u80fd\uff0c\u5173\u952e\u662f\u4f60\u8981\u8f93\u51fa\u5c0f\u6570\u7684\u51e0\u4f4d\u3002
\u8981\u8f93\u51fa\u51e0\u4f4d\uff0c\u5c31\u5728\u8f93\u51fa\u65f6 \u201c %0.*f\u201d \u7684 \u201c * \u201d \u5904\u586b\u591a\u5c11\u5c31\u884c\u4e86\u3002O(\u2229_\u2229)O~

# include
int main()
{
float a; //\u5b9a\u4e49\u4e00\u4e2a\u6d6e\u70b9\u6570a
scanf("%f", &a); //\u8f93\u5165a
printf("%0.1f", a); //\u8f93\u51faa\uff0c\u5bf9a\u5c0f\u6570\u70b9\u540e\u4e24\u4f4d\u8fdb\u884c\u56db\u820d\u4e94\u5165
return 0;
}

可以通过sprintf函数实现数字四舍五入转字符串,通过处理字符串,实现所需功能,具体代码,

#include <stdio.h>
int main(int argc, char *argv[])
{
char buffer[40];//存储float数据
float fnum=12.396;//待测试数据
sprintf(buffer,"%.2f",fnum);//四舍五入转化为字符串
int i=0;
for(;*(buffer+i)!='.';i++);//统计小数点的位置
if(*(buffer+i+2)=='0')//处理小数点后第二位字符,如果为0,替换为'\0'
*(buffer+i+2)='\0';
printf("四舍五入后,数据变为:%s\n,",buffer);

return 0;
}

float 为单精度浮点型数据,在Turbo C中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供7位有效数字。建议输入采用字符串形式,这样统计不会出偏差,使用数字时,使用double atof( const char *str )函数转换;如果使用数字,系统会自动补0的,与实际期望不符。

#include<stdio.h>
mian()
{
float n;
float num1,num2;
printf("请输入一个小数:");
scanf("%f",&n);

num1=(int)(n*100+0.5);
int i,j;
i=num1%10;
num2=mum1/10;
j=mum2%10;
if(i==0 && j==0)
printf("/n四舍五入后为:%d",(int)num1);
else
printf("/n四舍五入后为:%.2f",num1);

}

要对某个浮点数比如x保留到小数点后两位,可以将x乘以100,变成对这个数进行四舍五入到个位。
double f(double x)
{
double j = (x>=0?1.0:-1.0); //j是符号
return int(abs(x)*100+0.5)/100.0*j; //进行四舍五入,注意考虑正负号
}

把浮点数作为字符串输入,再比较最后一位是否为零,若为零则看倒数第二位;否则看是否大于等于5,若是则将倒数第二位加一并判断,否则直接舍去最后一位。最后输出修改后的字符串。

%.nf(%.nlf)
看你要输出多少位小数,n就为多少

  • c璇█涓浣鍙栧緱娴偣鏁扮殑灏忔暟閮ㄥ垎
    绛旓細鍦–璇█涓紝鍙互浣跨敤绫诲瀷杞崲銆佸彇妯℃潵鍙栧緱鏁存暟鍜屽皬鏁伴儴鍒銆備互涓嬩唬鐮佺ず渚嬶細绫诲瀷杞崲锛氬彲浠ヤ娇鐢ㄧ被鍨嬭浆鎹㈠嚱鏁板皢娴偣鏁拌浆鎹㈡垚鏁存暟锛屽皢鏁存暟杞崲鎴愭诞鐐规暟锛屼互鍙栧緱鏁存暟鍜屽皬鏁伴儴鍒嗐備緥濡傦紝浠ヤ笅浠g爜灏嗘暣鏁癮鐨勫皬鏁伴儴鍒嗗彇鍑猴細璇风偣鍑昏緭鍏ュ浘鐗囨弿杩 鍙栨ā锛氬彲浠ヤ娇鐢ㄥ彇妯¤繍绠楃锛 %锛夋潵鍙栧緱鏁存暟鍜屽皬鏁伴儴鍒嗐備緥濡傦紝浠ヤ笅浠g爜灏...
  • c璇█杈撳嚭娴偣鏁扮殑鏍煎紡鏄粈涔?
    绛旓細C璇█涓紝杈撳嚭娴偣鏁扮殑鏍煎紡鍙互浣跨敤鏍煎紡鎺у埗绗%f鏉ュ疄鐜銆%f鏍煎紡鎺у埗绗︾敤浜庤緭鍑轰竴涓诞鐐规暟锛屽彲浠ユ寚瀹氳緭鍑虹殑灏忔暟浣嶆暟銆備緥濡傦細鍦ㄨ繖涓緥瀛愪腑锛屾垜浠鍏堝畾涔変簡涓涓诞鐐瑰瀷鍙橀噺num骞跺垵濮嬪寲涓3.14159銆傜劧鍚庯紝鎴戜滑浣跨敤%.2f鏍煎紡鎺у埗绗﹀皢num鐨勫艰緭鍑猴紝骞舵寚瀹氳緭鍑虹殑灏忔暟浣嶆暟涓2銆傝繍琛屼笂杩扮▼搴忥紝杈撳嚭缁撴灉锛歯um = 3.14...
  • 濡備綍鐢c璇█杈撳嚭娴偣鏁鍛?
    绛旓細int main(){ float a,b,c,D,max;scanf("%f%f%f",&a,&b,&c);if(a>b)D=a;else D=b;if(D>c)max=D;else max=c;printf("%f",max);return 0;}
  • 鎬庝箞鍦C璇█涓緭鍑哄皬鏁扮偣?
    绛旓細鍦–璇█涓紝濡傛灉浣犳兂瑕佽緭鍑哄皬鏁板苟涓斾笉杩涜鍥涜垗浜斿叆锛浣犲彲浠ヤ娇鐢 printf 鍑芥暟鐨 %.nf 鏍煎紡璇存槑绗︼紝鍏朵腑 n 鏄綘鎯宠鐨勫皬鏁颁綅鏁銆備緥濡傦紝濡傛灉浣犳兂杈撳嚭涓涓诞鐐规暟骞朵笖淇濈暀 2 浣嶅皬鏁帮紝浣犲彲浠ヨ繖鏍峰仛锛氬湪杩欎釜渚嬪瓙涓紝%.2f 鍛婅瘔 printf 鍑芥暟浣犳兂瑕佽緭鍑轰竴涓诞鐐规暟骞朵笖淇濈暀 2 浣嶅皬鏁般傝繖涓嶄細杩涜鍥涜垗浜斿叆锛...
  • 鐢C璇█娴偣鏁鏍煎紡杈撳嚭鍒板睆骞曚笂瑕佹敞鎰忎粈涔堝晩
    绛旓細C璇█涓诞鐐规暟杈撳嚭绮剧‘鍒颁袱浣灏忔暟鐨璇彞濡備笅锛歞ouble a=2.0;printf ("%.2f", a);//鍏朵腑.2鎸囨槑涓や綅灏忔暟 璇存槑锛氬%9.2f 琛ㄧず杈撳嚭鍦哄涓9鐨勬诞鐐规暟, 鍏朵腑灏忔暟浣涓2, 鏁存暟浣嶄负6锛屽鏋9缂虹渷鍒欏満瀹戒负璇ユ暟瀹為檯浣嶆暟 瑙勫畾绗 d 鍗佽繘鍒舵湁绗﹀彿鏁存暟 x, %X 鏃犵鍙蜂互鍗佸叚杩涘埗琛ㄧず鐨勬暣鏁 o 鏃犵鍙蜂互鍏...
  • c璇█鈥滆緭鍏ヤ竴涓娴偣鏁,杈撳嚭瀹鐨缁濆鍊,淇濈暀涓や綅灏忔暟銆傗濇眰瑙
    绛旓細浠ヤ笅鏄竴涓 C 璇█绋嬪簭锛岀敤浜庤緭鍏ヤ竴涓娴偣鏁锛杈撳嚭瀹鐨缁濆鍊煎苟淇濈暀涓や綅灏忔暟锛歚``c include <stdio.h> include <math.h> int main() { float num, abs_num;printf("璇疯緭鍏ヤ竴涓诞鐐规暟锛");scanf("%f", &num);// 璁$畻缁濆鍊 abs_num = fabs(num);// 杈撳嚭缁撴灉骞朵繚鐣欎袱浣嶅皬鏁 printf("...
  • c璇█鎬庝箞璁杈撳嚭鍊兼槸灏忔暟?
    绛旓細鍒╃敤C璇█浣胯緭鍑哄间负灏忔暟鐨缂栫▼鏂规硶鍜屾濇兂濡備笅锛1.棣栧厛闇瑕佸畾涔変竴涓彉閲忎綔涓哄悗缁渶瑕杈撳嚭鐨勬暟銆傝繖閲屼互瀹氫箟涓涓彉閲廰涓轰緥銆傞渶瑕佹敞鎰忕殑鏄紝鏁村瀷int鏄笉鏀寔杞寲鐨勩2.鐒跺悗浣跨敤scanf()鍑芥暟鎺ュ彈浠庨敭鐩樿緭鍏ョ殑涓涓暟锛岃繖鏍峰氨涓哄彉閲廰鎴愬姛璧嬪笺3.鎺ョ潃浣跨敤printf璇彞鏉ュ鏁癮杩涜灏忔暟鍖栫殑澶勭悊銆傚鐞嗘牸寮忎负锛氥%....
  • C璇█绋嬪簭璁捐:杈撳叆娴偣鏁12.5鍒嗗埆杈撳嚭瀹鐨鏁存暟鏁伴儴鍒嗗拰灏忔暟閮ㄥ垎!
    绛旓細杩欎釜杩涜杞崲灏辫兘瀹屾垚 浠g爜濡備笅锛歩nclude <stdio.h>int main(){float a,c;int b;printf("璇疯緭鍏ヤ竴涓灏忔暟锛"); scanf("%f",&a);b = (int)(int)(a+1.0e-6);;c=a-b; printf("\n\n杈撳叆鐨勬槸锛%f 鏁存暟鏄細%d 灏忔暟鏄細%f\n\n",a,b,c); } ...
  • c璇█缂栫▼浠庨敭鐩樿緭鍏ヤ袱涓娴偣鏁,璁$畻骞跺叾鍜,淇濈暀涓や綅灏忔暟杈撳嚭銆
    绛旓細include<stdio.h> int main(){ float a,b;printf("璇疯緭鍏ヤ袱涓娴偣鏁锛");scanf("%f%f",&a,&b);printf("鍜屼负锛%.2f",a+b);return 0;} 鎵╁睍鍐呭锛歱rintf鍑芥暟涓殑format锛欶ormat 鍙傛暟鏄寘鍚笁绉嶅璞$被鍨嬬殑涓涓瓧绗︿覆锛氭棤鏍煎紡瀛楃澶嶅埗鍒杈撳嚭娴侊紱杞崲瑙勮寖锛屾瘡涓鑼冨鑷村湪鍊煎弬鏁板垪琛ㄤ腑妫绱 1 ...
  • C璇█濡備綍鍙栨暣鏁板拰鍙灏忔暟閮ㄥ垎?
    绛旓細鍦C璇█涓锛屽彇鏁存暟閮ㄥ垎鍜屽彇灏忔暟閮ㄥ垎鍙互鍊熷姪涓嶅悓鐨勬暟瀛﹀嚱鏁板拰杩愮畻绗︽潵瀹炵幇銆1銆佸彇鏁存暟閮ㄥ垎 瑕佸湪C璇█涓彇娴偣鏁鐨勬暣鏁伴儴鍒嗭紝鍙互浣跨敤绫诲瀷杞崲銆佸悜涓嬪彇鏁村嚱鏁(floor)鎴栨埅鏂灏忔暟鐨鏂规硶銆傜被鍨嬭浆鎹娇鐢ㄥ己鍒剁被鍨嬭浆鎹㈣繍绠楃锛屽彲浠ュ皢娴偣鏁拌浆鎹负鏁存暟绫诲瀷銆備娇鐢╢loor鍑芥暟鍙互璁╂诞鐐规暟鍚戜笅鍙栨暣涓烘渶杩戠殑鏁存暟銆傝屾埅鏂...
  • 本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网