c語言小數位
⑴ c語言中怎麼保留小數2位
在c語言中一個數保留2位小數可以通過精度限定符來完成,精度限定符有一個點號後跟一個整數組成。
示例:
#include
int main()
{
dobule a = 1.23456;
printf("%.2f\n", a);
return 0;
}
/*
輸出:1.23
*/注意:這里保留小數是四捨五入的,即如果保留的小數位數的後一位大於等於5,則進1,否則捨去,如示例中的a的值改為1.23556,則會輸出1.24。
⑵ c語言保留一位小數是什麼意思
保留一位小數就是只保留一位小數。
應該改為print("% .1 f",x),——(1的前面有個小數點)表示輸出精確到小數點後1位。如果實際數字不足1位,則在末尾補0,若大於1位,則按四捨五入取前一位。
具體實現方法見下例:
floatx=3.1415926;
printf("%.1f",x);//輸出結果為3.1。
簡介
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器以及超級電腦等作業平台。
⑶ 如何用c語言計算小數點後位數
這個要看小數按什麼格式輸入。
如果按%s輸入,也就是按字元串格式輸入,先找到小數點的位置,然後統計下小數點後數字的長度。
具體實現可參考:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[])
{
char a[128];
while(scanf("%s",a)!=EOF)
{
if(strstr(a,".")!=NULL)
printf("%d\n",strlen(strstr(a,".")+1));
else
printf("0\n");
}
system("pause");
return 0;
}
如果按%f(對應float類型小數)或者%lf(double類型的小數)方式讀入,則需要先去掉整數部分,然後看小數部分一直乘10減去整數部分,知道等於0,統計,乘了幾次10,但是由於浮點數在計算機中存的並不是准確值,這個往往得不到正確的結果。可以使用sprintf(str,"%g",f);,然後由於f畢竟不是准確值,還是會出現有些問題,源碼如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[])
{
char a[128];
float f;
while(scanf("%f",&f)!=EOF)
{
sprintf(a,"%g",f);
if(strstr(a,".")!=NULL)
printf("%d\n",strlen(strstr(a,".")+1));
else
printf("0\n");
}
system("pause");
return 0;
}
這是最後一個已經出現錯誤,所以遇到要精確判斷小數點的位數,最好直接按字元串讀入,這和圖靈機的工作原理暗暗相合。
⑷ C語言小數位位數
思路:將輸入作為一個字元串處理,然後逆序遍歷
從第一個不為0的數字開始計數,直至遇到小數點字元
當集數超過5,對應"EX"
#include <stdio.h>
int main()
{
char s[100];
int i,cnt;
gets(s);
for(i;s[i];i++);
for(i--;s[i]=='0';--i);
for(cnt=0;s[i]!='.';--i,cnt++);
if(cnt<5)
printf("%d ",cnt);
else
printf("EX ");
return 0;
}
⑸ c語言怎樣保留兩位小數
C語言怎麼保留兩位小數,如果不定義的話,那麼就會默認不是兩位小數,那麼需要輸出內容保留小數,實際上可以對浮點型進行設置的。
1、首先打開IDE,接著保存main.c文件。
⑹ 關於C語言小數點後多少位的問題
C語言中浮點型一般分為float單精度型、double雙精度型、long double長精度型,單精度浮點型小數點後面有效數字為6~7位和雙精度浮點型小數點後面有效數字為15~16位。
在C語言標准庫頭文件float.h定義了浮點數小數點後的有效位數 :<pre t="code" l="cpp"> //float.h頭文件的部分代碼
#define DBL_DIG 15 //雙精度小數點後15位
#define FLT_DIG 6 //單精度小數點後6位
#define LDBL_DIG 19 //長雙精度小數點19
⑺ c語言精確小數位數會怎樣捨去後面的小數
1、正數x四捨五入的技巧:
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四捨五入再除以100;
x=(int)(x*100+0.5)/100.0;
(7)c語言小數位擴展閱讀
C語言保留小數點後一位
例:
#include<stdio.h>
voidmain()
{
floata=1,b=2,c;//先定義一個實型數據
c=a/b;
printf("%.1f ",c);//重點在於%.1f
}
⑻ C語言中如何保留一位小數點
保留一位小數,就是精確到十分位,省略十分位後面的尾數。
float sp = 36.51647
sp=( (float)( (int)( (sp+0.005)*100 ) ) )/100
eg: 保留小數點後第二位:
1.定義一個double型的變數。
2.先乘100。
3.加零點五。(此刻的小數點第三位加了零點五後,該進位和該舍掉 其實此刻為小數點第一位。)
4.強制轉換: x=(int)x。
除法分為整除和精確除 例如a/b 當a,b同時為整數時,是整除,例3/5=0,5/3=1,14/5=2就是只要整數部分,而如果a,b兩個有一個或者兩個都是小數的話,就是精確除,和數學。
除法 c=b/a b=b/a等價b/=a 余數 c=b%a,也就是b整除a 的余數為c b=b%a等價b%=a。
除法比如a除以b 表示為:a/b 但是結果是取商 a除以b取余 a%b 結果是取余數。
⑼ C語言中如何定義小數
C語言中用於描述小數的數據類型是float和double,float類型表示單精度浮點數,double表示雙精度浮點數。
C語言中浮點數常量有兩種表示方式:
1、定點表示:(必須有小數點)
如:0.123,
.123,
123.0。
2、指數表示:(e或E之前必須有數字,指數必須為整數)如:12.3e3
,123E2,
1.23e4。
錯誤的寫法:e-5
,1.2E-3.5,e3。
注意:浮點數常量默認為double類型,如果浮點數常量表示float類型,請在末尾添加小寫的f或者大寫的F,表示此常量為單精度浮點常量。
float f1 = 1.1f; //小寫f
float f2 = 1.1F; //大寫F
double d = 1.1; //double類型
⑽ C語言中,怎麼處理小數位後6位
C語言裡面,默認%f是小數點後6位,如果想小數點後面16位,寫成%.16lf,不會自動四捨五入的,double是一個近似值,通常沒有辦法做的很精確。通常能精確到小數點後面5,6位,也就是說超過5,6位了可能就不準了。