❶ c語言中除法怎麼取得小數
1、打開C-Free,新建文件。
❷ 如何用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語言中的帶小數運算看看我寫的哪裡不對了
#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語言中如何求最小數
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語言帶小數點的計算問題
printf,sprintf函數系列的第一個參數(也就是字元串輸出格式中)中要對小數進行位數限制可以用"%a.bf"的形式表示,其中a是小數點前的位數,b是小數點後的位數
例如:
printf("小數=%7.5f",12.3);
輸出結果就是0000012.30000
❻ 如何用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語言小數精確計算
你好,在編程中不要指望去得到一個精確的數字,而應該是頂一個誤差范圍(相對誤差)。如 double eps = 0.000000001;然後再把數字與 eps 比較。
if((68 - n)<eps)即認為 n = 68;。當然,這是人工處理。如果想得到精確數字,可以用 Boost 庫。
❽ C語言怎麼算小數除法
在C語言中整數沒有除法,只有取商(/),取余(%),所以,也沒有什麼舍入,2/3=0,3.2/2=1.6(2也是浮點數,因為不同數據類型的數是不能參與運算的),1.50000*6=9.0(同理,6也是浮點數)。
❾ 如何用c語言計算小數點後位數(float本身都無法精確)
float以10進制只有7個有效數字,如果你存的數大於7位那麼一定會不準確,小於7位的就准確,其實float只有前7位有意義,有時會只有6位有意義。。。 也就是說你只用用7-整數位數就行,如果整數位為0,那麼你只需要7+第一個不是0的小數所在位置即可,即此時小樹位數是大於7的,但有效數字個數仍然是7。。。。
❿ C語言中如何求小數
如果要求小數,數的定義必須為float或double類型。