浮點變數賦值中浮點數加字尾f和不加字尾f的編譯提示為什麼不一

2021-04-20 14:50:38 字數 2519 閱讀 7117

1樓:匿名使用者

c語言預設

bai3.1是一個double型的數,float s = 3.1;這句相

du當於把一zhi個double型的雙精度dao浮點數賦給回了單精度浮點數s,所以有

答可能產生截斷。加上f後3.1f是一個float型數,把它賦給同是float型的s就沒問題啦。

2樓:匿名使用者

3.1預設的是

制double型,若是float s=3.1,就是將一個double型的數賦給一個float型的變數,有可能造成精度損失。而3.

1f就相當於宣告3.1是float型,這樣就不會出現上述的問題。

單精度變數賦值,後面加一個f是什麼意思?

3樓:匿名使用者

單精度變數賦值後面加f是表明該數字為單精度浮點型數字(float);類似地,後面如果加d則是表明該數字為雙精度浮點型數字(double)。如果在**中使用一個小數而沒有加任何字尾,則此數字自動視為double型別。

賦值簡介:

將某一數值賦給某個變數的過程,稱為賦值。

4樓:匿名使用者

在c語言中貌似沒什麼區別,加不加都一樣,但是在c#中定義一個單精度浮點型的數就必須加上f,否則編譯就會出錯

5樓:匿名使用者

幫你查了一下資料,下面一段文字為書上的引用!

"標準c允許浮點數使用字尾,字尾為 「 f」或「 f」即表示該數為浮點數。如356.4f和356.4是等價的!"

浮點變數+f的問題

6樓:菸捲不抽菸

數字後bai面加f是表明該數字du

為單精度

浮點型數字(zhifloat);類似地,後面dao如果加版d則是表明該數字為雙精權度浮點型數字(double)。如果在**中使用一個小數而沒有加任何字尾,則此數字自動視為double型別。

回到問題本身。float x = 3.14f; 是一個宣告賦值語句。

如果3.14後面不加字尾f,則系統將認定3.14是double型別的常量,並將double型別賦值到float型別的x變數中。

而double變為float是丟失精度的,因此它被編譯器認定為帶有危險性的行為,一般會彈出一個warning。所以,在為float型別賦值常量時,通常在後面加字尾f,通知編譯器常量的型別是float,以避免被編譯器誤判為丟失精度。

7樓:

float x=3.14f;//指定x為單精度實型量,如果不加f為雙精度實型量,c中單精度型佔4個位元組(32位)記憶體空間,雙精度型佔8 個位元組(64位)記憶體空間。

8樓:匿名使用者

說明x=3.1400000

對於一個小數其預設型別為double型,如果需要指定為float型,需要在小數後面新增f或f字尾。

9樓:匿名使用者

float x=3.14;

float 僅僅是說明x是個

抄float 但是3.14 是個double, 這樣初始化x的時候會有從double到float的轉換

而3.14f就不一樣了 ,3.14f就是個float,初始化的時候沒有轉換過程

10樓:想去珠穆朗瑪峰

如果不加f預設是double型別,double比float精度高,會丟失精度的

11樓:最愛

不加f的話x就是一個double型別的

12樓:***x櫻

說明是float型的資料

vs2015書寫浮點型常量時不允許在後面加字尾f嗎

13樓:

常量後面加copyf表示是float型,不加baif的,整數預設為du

zhiint型,浮點數預設為double型。pi是float型的變數,3.14為了和dao

它匹配,所以就加上了f,否則需要這樣一個強制型別轉化 const float pi = (float)3.14; 缺少了在比較嚴格編譯器中會提示一個warning的。不是說過了嘛,3.

14是double的,你把一個double型別的量賦值給float型別的就會有warning.const int a = 5.3;上面這個會出問題你能理解嗎,你這個是同樣的道理。

沒有寫成double可能是不需要那麼高的精度,double的運算比float慢很多。

c語言中給float型變數賦值時需要在數值後加f嗎

14樓:匿名使用者

不加是double型別,double可以隱式轉換成float,所以可以不加,但是編譯器可能給你一個警告。

15樓:gosunny小情緒

float型別的字面常量,後面需要加上f或者f來表示是一個單精度浮點數。只所以專要這樣寫,是屬因為預設的浮點數常量都是double型別。

#include

int main()

浮點數在計算機裡面的儲存,浮點數 在計算機內的儲存形式

這個問題比較難.其實在實際運算過程中或寫程式中我們要求的浮點數都有一定的精度,大多數情況下存成檔案等形式我們一般會讓他 10 n次方來儲存去掉小數位.下面說正題.何資料在記憶體中都是以二進位制 0或1 順序儲存的,每一個1或0被稱為1位,而在x86cpu上一個位元組是8位。比如一個16位 2 位元組...

浮點數的精度和範圍區別是什麼

浮點數抄一般包括單襲 精度浮點數 float 和雙精度浮點數 double 單精度浮點數精度 最多有7位十進位制有效數字。單精度浮點數範圍 3.4 10 38 3.4 10 38。雙精度浮點數精度 可以表示十進位制的15或16位有效數字雙精度浮點數範圍 1.7x10 308 1.7x10 308。區...

為什麼浮點數的表示範圍比整型數大

浮點數的表示範圍比整型數大是因為採用的表示形式不同。整型數在計算機底層採用補碼的形式表示,除去首位的符號位,剩餘的位數即表示數值的範圍。浮點數在計算機中則是實數由一個整數或定點數 即尾數 乘以某個基數 計算機中通常是2 的整數次冪得到,用以近似表示任意某個實數。1 浮點數和整型數在計算機內的表示方式...