本文目錄一覽:
C語言輸入小數,精確到小數點後10位
把scanf(“%15.10f”,x);應該改成scanf(“%15lf”,x);這樣就好了。
代碼中x是double型的,在輸入數據的時候是不允許使用%f的,double型的數據輸入必須使用%lf
還有,scanf(“%15.10f”,x);15.10這個是不允許出現的,在數據輸入的時候只能指定輸入數據的總長度,不能指定小數點後的長度。
擴展資料:
scanf(函數原型
int scanf(const char * restrict format,…);
函數 scanf() 是從標準輸入流stdin(標準輸入設備,一般指向鍵盤)中讀內容的通用子程序,可以說明的格式讀入多個字符,並保存在對應地址的變量中。
函數的第一個參數是格式字符串,它指定了輸入的格式,並按照格式說明符解析輸入對應位置的信息並存儲於可變參數列表中對應的指針所指位置。每一個指針要求非空,並且與字符串中的格式符一一順次對應。
參考資料來源:百度百科-scanf (計算機語言函數)
c語言如何讓精確顯示小數?
可以在輸出時,指定小數點後的有效位數,實現精確到若干位的效果。
要精確到小數點後若干位,則數據類型為浮點型,可能為單精度(float)或雙精度(double)。
在C語言中,使用格式化輸出函數printf來實現輸出。
輸出格式為
%.NF
1 %為格式化字符串的引導字符。
2 .N表示指定顯示N位小數。
3 F為類型字符,對於float, F值為f, 對於double,F值為lf。
舉例:
1 要輸出float a=1.23234; 保留3位小數的寫法為:
printf(“%.3f”,a);
2 輸出double b=123.345232; 保留4為小數,寫法為:
printf(“%.4lf”,b);
c語言中保留兩位小數如何寫?
1、本文以sublime text3編輯器作為示範,先打開IDE。
2、接着我們保存main.c文件。
3、這個時候我們把內容輸出,設置浮點型。也就是%f。
4、但是輸出的時候默認有多位小數。
5、於是我們可以設置%.2f,也就是兩位數,因為我們寫了2。
6、這個時候執行代碼的時候就會看到只有兩位小數了。
C語言保留兩位小數的問題
你給的代碼是有錯誤的,但你說運行結果是0.00000,我暫且認為你的代碼是這樣的:
#include stdio.h
double a = 0.9876;
int main(void)
{
printf(“%f”, (int)((a + 0.005) * 100) / 100);
return 0;
}
((0.9876
+
0.005)
*
100)
/
100)
的結果是0.9926。因為
(int)
強制轉換使0.9926取整,變成整型數字0。又因為「%f」的轉換說明要求輸出浮點數,程序給0後補零,變成0.000000。
你的題目是「C語言保留兩位小數的問題」,想給該程序結果保留兩位小數,應將代碼改成:
#include stdio.h
double a = 0.9876;
int main(void)
{
printf(“%.2f”, ((a + 0.005) * 100) / 100);
return 0;
}
「%.2f」就是輸出結果為保留小數點後兩位的浮點數。但這裡不是四捨五入,是直接截取。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/237006.html