❶ 如何用c語言計算小數點後位數(float本身都無法精確)
#include
void
main()
{
float
f;
double
c;
//結果最好定義為double型,運算時最後的結果可能會轉為double型
printf("輸入華氏溫度:");
scanf("%f",&f);
//用於接受鍵盤輸入的數
c=(f-32)/1.8;
//計算
printf("c=%lf",c);//輸出結果
}
//如果要循環輸入可用循環嵌套起來,並使用條件當你輸入特定值時退出
❷ c語言 求小數的位數
#include<stdio.h>
#include<string.h>
intmain()
{
inti,x,y;
chars[100];//用字元串存儲浮點數
printf("請輸入浮點數:");
gets(s);
y=strlen(s);
for(i=0;i<100;i++)
{
if(s[i]=='.')
x=(i+1);
}
y-=x;
printf("%d ",y);
return0;
}
看來還是沒明白你的意思,呵呵
❸ 求C語言小數精確計算
你好,在編程中不要指望去得到一個精確的數字,而應該是頂一個誤差范圍(相對誤差)。如 double eps = 0.000000001;然後再把數字與 eps 比較。
if((68 - n)<eps)即認為 n = 68;。當然,這是人工處理。如果想得到精確數字,可以用 Boost 庫。
❹ 如何用c語言計算小數點後位數(float本身都無法精確)
100.25432是十進制數,存入float要先化成2進制float格式,十進制化二進制,通常化不凈,於是就引入了截斷誤差,以至於,只有6-7位有效數字精度了。你可以用字元串來輸入和存放。chars[30]="100.25432";intL,k,i,n;L=strlen(s);//計算字元串長度,得9for(i=0;i<L;i++)if(s[i]=='.'){k=i;break;};//找出小數點在哪裡,得3n=L-k-1;//小數點後的位數,得5-----如果輸入,前面添輸入語句:printf("pleaseinput100.25432\n");scanf("%s",s);//讀入100.25432接下來同樣計算L,k,n就可以了。
❺ c語言中小數部分是怎麼相加的
1.C語言的小數都是浮點數。浮點數屬於floating binary point types,也就是說都double型的數值在相加減的時候,會將數值轉換成二進制的數值如10001.10010110011這種表示發再做相加減,但是在轉換成二進制代碼表示的時候,存儲小數部分的位數會有不夠的現象,即無限循環小數,這就就會造成小數相加後結果會有微差距。
2.浮點數是屬於有理數中某特定子集的數的數字表示,在計算機中用以近似表示任意某個實數。具體的說,這個實數由一個整數或定點數(即尾數)乘以某個基數(計算機中通常是2)的整數次冪得到,這種表示方法類似於基數為10的科學計數法。
3.浮點計算是指浮點數參與的運算,這種運算通常伴隨著因為無法精確表示而進行的近似或舍入。
一個浮點數a由兩個數m和e來表示:a = m × b^e。在任意一個這樣的系統中,我們選擇一個基數b(記數系統的基)和精度p(即使用多少位來存儲)。m(即尾數)是形如±d.ddd...ddd的p位數(每一位是一個介於0到b-1之間的整數,包括0和b-1)。如果m的第一位是非0整數,m稱作規格化的。有一些描述使用一個單獨的符號位(s 代表+或者-)來表示正負,這樣m必須是正的。e是指數。
❻ 如何用c語言計算小數點後位數(float本身都無法精確)
float以10進制只有7個有效數字,如果你存的數大於7位那麼一定會不準確,小於7位的就准確,其實float只有前7位有意義,有時會只有6位有意義。。。 也就是說你只用用7-整數位數就行,如果整數位為0,那麼你只需要7+第一個不是0的小數所在位置即可,即此時小樹位數是大於7的,但有效數字個數仍然是7。。。。
❼ C語言中的帶小數運算看看我寫的哪裡不對了
#include <stdio.h>
int main(int argc, char* argv[])
{
double M = 0.00, R = 0.00, Y = 0.00; // M為總金,R為整數的利率,要轉化為小數,Y為年限
int qian2, qian1; // qian1是利息,qian2是總本息
scanf("%lf%lf%lf", &R, &M, &Y);
qian1 = M * R / 100;
qian2 = M + qian1;
printf("%d", qian2);
return 0;
}
❽ C語言簡單小數運算
#include<stdio.h>
intmain(void)
{
floatx,a=2,b=4.7;
x=(int)(b-a)%3*a/4-a;
printf("%f",x);
return0;
}
看你printf();裡面怎麼寫了的。你都沒給全代碼
❾ C語言怎麼算小數除法
在C語言中整數沒有除法,只有取商(/),取余(%),所以,也沒有什麼舍入,2/3=0,3.2/2=1.6(2也是浮點數,因為不同數據類型的數是不能參與運算的),1.50000*6=9.0(同理,6也是浮點數)。
❿ C語言中如何求小數
如果要求小數,數的定義必須為float或double類型。