不同編譯器對double的輸出
㈠ double 可以用%f輸出么為什麼選擇題上面一般%f都不對,%lf才算正確選項
分輸入和輸出,兩者不一樣。
輸入時,scanf函數必須用%lf讀入double類型數叢慎據。這是ISO標准唯一規范;
輸出時,printf函數要求用%f輸出double類型數據。這李羨亦是ISO標哪鄭拍准唯一規范,不過主流編譯器也支持%lf輸出double類型。但要注意的是,%lf並不在ISO標准中,因此其可移植性沒有保證。
㈡ c語言中float與double在程序中輸出的分別是多少位
float是32位的,double是64位的
㈢ c語言long double輸出格式
在C語言中,對於數值類型只有通過printf類函數輸出這一種方式,比如printf, sprintf, fprintf等。這類函數輸出時要求有格式符號,其中long double的格式符號為%llf
以下是一個簡團褲單的參考代碼,輸出到標准輸出設備。
#include<stdio.h>
intmain()
{
longdoublev=1.23;
printf("%llf ",v);//採用%llf格式輸出longdouble類型
return0;
}
關於long double, 需要說明的是,在原始的C標准中是沒有這個類型的,C99中才添加衡或仿了該類型。而在C99及後續的規范中,對於該類型規定的也並不詳細,只是要求long double類型在精度上需要不少於double的咐纖精度。於是就出現了有的編譯器不支持long double, 而支持的編譯器在實現上也有所區別,目前常見的long double有佔用8位元組,10位元組,12位元組和16位元組四種,但輸出格式都是相同的%llf。 如果想知道使用的編譯器是如何實現的,可以用printf("%d", sizeof(long double));輸出long double佔用的空間值。
㈣ C語言一個簡單的問題
我可以肯定的告訴你,這里沒有正確答案
輸出是0
Dev c++ 和 vc ++ 中都是這個仔拿結果 0;
看看是不是你將程序看錯了
如果耐激改成
double a=3.5;
printf("%d",(int)a);
輸出的將是 3
printf 函念畝搭數不會自動將a 轉換為整型,再輸出的。需要強制轉換才行。否則會讀取double型的內存空間,而當整型輸出。
㈤ double類型變數C語言里輸出時的格式說明符是什麼
double類型變數C語言里輸出時的格式說明符是%f。
float和double類型的輸出時的格式說明符都是%f,這是由於向那些未在原型中申明參數類型的函數傳遞參數時,float型會自動轉為double型,所以用%lf和%f結果都一樣。
例如:
doublea=3.1323;
floatb=0.234;
printf("%lf
",a);//輸出結果為3.1323
printf("%f ",b);//輸出結果為0.234
(5)不同編譯器對double的輸出擴展閱讀:
1、雙精度浮點型,此數據類型與單精度數據類型(float)相似,但精確度比float高,編譯時所佔的內存空間依不同的編譯器而有所不同,是double float數據類型,C/C++中表示實型變數的一種變數類型。
2、此數據類型與單精度數據類型(float)相似,但精確度比float高,編譯時所佔的內存空間依不同的編譯器而有所不同,通常情況,單精度浮點數佔4位元組(32位)內存空間,其數值范圍為-3.4E38~3.4E+38,;雙精度型佔8 個位元組(64位)內存空間,其數值范圍為-1.7E308~+1.7E308。
資料來源:網路:雙精度浮點型
㈥ C語言中用double還是溢出該怎麼辦,用long double時輸出怎麼表示
當數據精度要求不超過15位有效數字時,可以使用double;
當數據精度要求不超過19位有效數字時,可以使用long double;
如果有更高的精度要求,C語言並沒有能直接解決這個問題的定義,應當使用數組,採用「高精度」演算法。
(6)不同編譯器對double的輸出擴展閱讀:
C語言中,雙精度浮點(double)型,佔8 個位元組桐肢絕(64位)內存空間。其數值范圍為-1.7E308~1.7E+308,雙精度完全保證的有效數字最高是15位,變數定義時,可以飢中簡寫為double。
long double
C 還提供了 long double 類型,目的是提供一種比 double 更加精確的類型。然而局姿,C 標准僅僅規定 long double 至少要和 double 一樣精確。
㈦ C語言中,已經定義一個數為long double型,該用什麼格式輸出
%lf是long double的輸出格式。不要用%f,這是float和double的輸出格式,會丟失精度。
㈧ 關於C語言中double型輸出的問題
%f格式化命令,float,double 默認只輸出6位小數。
但是float,double可以表示的浮點數范圍及精度是不同的。
例如
float a = 1.123456;
float b = 1.12345679;
例如:
ble佔8位元組 對應的格式為%lf
float佔4位元組 對應的格式為%f
當兩個格式用反時,會造成程序讀取數據並賦值時,賦值給變數時位元組信息錯位,導致數據錯誤。
float 存儲數悄宏據格式為:1位的啟洞冊符號位+8位的指數位+23位尾數
double存儲數據格式為:1位的符號位+11位的指數位+52位尾數
因此,錯位存儲的數據,解釋輸出來就差別非常大了。
(8)不同編譯器對double的輸出擴展閱讀:
Data Output Stream類用於將Java語言中的基本類型數據寫入輸出流,顫李如byte、int、float和boolean等類型。該類定義了許多以write開頭,後面跟數據類型的方法,這些方法用於將指定數據類型的數據寫入輸出流,如下所示。
(1)writeBoolean():寫boolean類型數據。
(2)writeByte():寫byte類型數據。
(3)writeCliat():寫char類型數據。
(4)writeDouble():寫double類型數據。
(5)writeFloat():寫float類型數據。
(6)writeInt():寫int類型數據。
㈨ C語言中(double)(10%3)的結果是什麼
1、結果為:1.0000000000000000,16位有效數字
2、敏空中測試環境:vc++6.0,32位 xp sp3
3、printf輸出的結果並不代表double的精橋山確度,不同的編譯器定義的結果也不相同,vc++6.0的輸出結果為1.000000。
4、測虧宴試過程:
㈩ C語言中double要輸出幾位小數
C語言中double要輸出幾位小數?
C語言中double預設輸出 6 位小數。
如果要控制輸出小數位數,可以格式化輸出。
printf("%.3lf ", d); "%.3lf" .3 則是輸出 3 位小數
printf("%.4lf ", d); "%.4lf" .4 則是輸出 4 位小數
c語言中想要讓輸出數字保留幾位小數該怎麼做?
舉個例子,如果想要輸出保留三位小數的雙精度浮點數,則應該這樣寫:
printf("%.3lf",d);
其中的「.3」就是小數點後保留三位小數。
注意,3前面有個點哈!
C語言中float ,double, long double分別最多可支援幾位小數點
float 單精度浮點,8個點。
double雙精度浮點, 16個點。
long double長雙精度浮點,32個點。
c語言中%g格式最多輸出幾位
%g用來輸出實數,它根據數值的大小,自動選f格式(一般小數格式)或e格式(科學計數法)。選擇標准為選擇輸出時占寬度較小的一種。且%g不輸出無意義的0。
即%g是根據結果自動選擇科學記數法還是一般的小數記數法。
比如如下程式碼:
printf("%g\n", 0.00001234);
printf("%g\n", 0.0001234);
printf("%.2g\n", 123.45);
printf("%.2g\n", 23.45);
分別會輸出:
1.234e-05
0.0001234
1.2e+02
23
對於指數小於-4或者大於給定精度的數值,按照%e的控制輸出,否則按照%f的控制輸出.
C語言中怎樣控制輸出小數按四捨五入輸出7位小數
#include <stdio.h>int main(){ float a=3.14159889; printf ("%.7f",a);保留7位小數就用%.7f return 0;}
double p = 3.14159265;
long x = 0;
p = p*10000000 + 0.5;
x = (long)p;
p = x/1000000;
printf("%.7lf",p);
這樣,你把這個小數,乘以10的7次方,然後對結果取整(也就是強制轉化為整型),然後對這個取整後的整型 加上 0.5 ,再除以10的7次方,就搞定了.
如果你想四捨五入,比方說,想要3.14159,四捨五入取小數點後3位,
你可以將3.14159*1000,得到3141.59,然後再加上0.5,得到3142.09,然後再取整(強制轉化為INT型),得到3142,然後再除以1000,就得到你想要的小數點後3位的四捨五入了,就是3.142.
如果不想要四捨五入,直接擷取,就不要加上0.5
C語言中想輸出double和long double型用%什麼?
1、%f 是輸出 float 型變數;%f 是輸出 double 型變數;%Lf 是輸早慶出 long double 型變數。
2、在C語言中,對於數值型別只有通過printf類函式輸出這一種方式槐租,比如printf, sprintf, fprintf等。這類函式輸出時要求有格式符號,其中long double的格式符號為%Lf以下是一個簡單的參考程式碼,輸出到標准輸出裝置。
#include <stdio.h>int main(){long double v = 1.23;printf("%Lf\n", v);採用%llf格式輸出long double 型別return 0;}
關於long double, 需要說明的是,在原始的C標准中是沒有這個型別的陸明握,C99中才添加了該型別。而在C99及後續的規范中,對於該型別規定的也並不詳細,只是要求long double型別在精度上需要不少於double的精度。於是就出現了有的編譯器不支援long double, 而支援的編譯器在實現上也有所區別,目前常見的long double有佔用8位元組,10位元組,12位元組和16位元組四種,但輸出格式都是相同的%lf。 如果想知道使用的編譯器是如何實現的,可以用printf("%d", sizeof(long double));輸出long double佔用的空間值。
c語言中怎麼輸出 long double型別
輸出int , 用%d
輸出float, 用%f
輸出double,用 %lf
輸出long int ,用%ld
long double在C語言中怎麼讀入和輸出?
void main()
{
long double lf;
scanf("%lf", &lf);
printf("%lf\n", lf);
}
c語言中float小數點後能有幾位?
float 型別總共只能表示7位有效數字,
如果需要非常准確的數字,請考慮使用 Decimal 資料型別