當前位置:首頁 » 編程語言 » c語言float保留2位小數四捨五入
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言float保留2位小數四捨五入

發布時間: 2022-11-14 00:00:19

『壹』 c語言問題 編寫一個函數,作用是保留兩位小數,對第三位四捨五入···

printf是輸出把
scanf才是輸入
整理如下

#include<stdio.h>
float fun (double);
int main()
{
double a;
float b;
printf("請輸入一個浮點數:");
sanf("%f",&a);
b=fun(a);
printf("轉換後的浮點數為:%12.2f\n",b);
return 0;
}
float fun (double h)
{
int e=(int)(h*100.0);
e%=10;
if(e>=5)
h+=0.01;
return (h);
}

『貳』 c語言怎樣保留兩位小數

C語言怎麼保留兩位小數,如果不定義的話,那麼就會默認不是兩位小數,那麼需要輸出內容保留小數,實際上可以對浮點型進行設置的。

1、首先打開IDE,接著保存main.c文件。

『叄』 C語言四捨五入保留兩位小數

#include
main()
{
double
a;
printf("請輸入一個四位小數:\n");
scanf("%lf",&a);//雙精度應該是的%lf
a*=100;//
擴大100倍,舉個例子:a=123.4567,a=a*100,則a=12345.67
a+=0.5;//加0.5進行四捨五入a=12346.17
a=(int)a;//這個地方是想保留兩位小數,後邊的捨去,所以進行強制類型轉換.
a/=100;//上面擴大100倍,現在要對其縮小100
printf("結果是:%f\n",a);//這樣就行了,或者printf("結果是:%.2f\n",a);
}

『肆』 C語言四捨五入保留兩位小數的程序怎麼寫

#include <stdio.h>

double fun ( float h )

{ return (long)( h * 100 + 0.5 )/ 100.0;
}main( )
{

float a;
printf ("Enter a: "); scanf ( "%f", &a );
printf ( "The original data is : " );
printf ( "%f ", a );
printf ( "The result : %f ", fun ( a ) );

}

『伍』 c語言,不管是float還是double類型的用%.2f保留2位小數要四捨五入,怎麼不讓他四捨五入

乘以100-->取整-->除以100.0就能達到題設要求。舉例代碼如下:

#include"stdio.h"
intmain(intargc,char*argv[]){
doublep=3.1415926;
floate=2.718281f;
printf("p=%.2f(處理前無進位) ",p);//小數點後第3位是1,不進位
printf("p=%.2f(處理後無進位) ",int(p*100)/100.0);//處理後不影響結果
printf("e=%.2f(處理前有進位) ",e);//因為小數點後第3位是8,所以有進位
printf("e=%.2f(處理後無進位了) ",int(e*100)/100.0);//處理後沒有進位了
return0;
}

運行結果如下:

『陸』 求教c語言float類型數據四捨五入問題如何實現

假設需要在小數點之後兩位進行四捨五入,利用整型能截斷小數的特點:
float a=3.1415926,b; int c;
b=a; b*=100; //b=314.15926
b+=0.5; //在個位實現四捨五入
c=b; b=c; //利用整型變數賦值截斷小數點之後數據c=314,b=314.0
b/=100; //恢復原先小數點位置b=3.14
簡單地寫是這樣:b=(int)(a*100+0.5)/100f;

『柒』 C語言四捨五入保留兩位小數

應該是精度問題。因你使用的是float變數,你可以用printf顯示a*100的結果是155.499995而不是155.50000你可以全改成double型#include <stdio.h>
double fun ( double h )
{ return (long)( h * 100 +0.5 )/ 100.0;
}main( )
{ double a;
printf ("Enter a: "); scanf ( "%lf", &a );
printf ( "The original data is : " );
printf ( "%lf %lf\n\n", a, a*100 );
printf ( "The result : %lf\n", fun ( a ) );

}

『捌』 C語言編程 對變數保留兩位小數 並進行四捨五入

int a;
a=h*1000; //擴大1000倍,並轉換為int型
if(a%10>=5) a+=10; //若千分位大於等於5,則十分位進1
a/=10; //舍棄千分位後的部分並縮小10倍
return ((float)a)/100; //轉換為Float型並縮小100倍

『玖』 C語言如何實現輸出浮點數小數點兩位(四捨五入法),但若小數點最後位為零則捨去

要對某個浮點數比如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; //進行四捨五入,注意考慮正負號
}

『拾』 用C語言怎麼實現浮點數的四捨五入,保留兩位小數點

C語言怎麼實現浮點數的四捨五入,保留兩位小數的設計過程為:

  1. 定義浮點點數變數df,輸入浮點數

  2. 浮點數df擴大100倍

  3. 浮點數df增加0.5

  4. 利用floor()函數得到最接近df數,但不大於df的整數(完成四捨五入)。不能用int強制轉換,否則,數據超過int范圍就會出現錯誤。

  5. 浮點數df縮小100倍得到有兩位小數的浮點數

  6. 按%.2f輸出結果。

參考代碼:

#include<stdio.h>
#include<math.h>
voidmain()
{
doubledf=0;
printf("inputd:");scanf("%lf",&df);
df*=100;
df+=0.5;
df=floor(df);
df/=100;
printf("d=%.2f ",df);
}