C 中的自動型別轉換和強制型別轉換

2022-09-26 02:45:08 字數 993 閱讀 4587

前面已經認識了不同的資料型別,你們有沒有嘗試過讓不同的資料型別進行運算呢?

inmwywfswfnft a = 1;

double b = a;

console.writeline(b);

執行結果是:1

我們把乙個整型的變數賦值給了乙個浮點型的變數,可以正常的輸出,如果我們把乙個浮點型的變數賦值給乙個整型的變數呢?

double a = 1;

int b = a;

console.writeline(b);

這樣就會報錯。

為什麼呢?因為我們之程式設計客棧前說過,變數就像乙個容器,裡面存放著變數的值。而資料型別就相當於容器的型別,決定了容器能夠存放什麼樣的值。

試想,生活中我們把小盒子裡的東西放進大盒子裡,是沒有問題的。資料型別也是這樣。程式設計客棧我們把整型的資料賦值給浮點型是可以放進去的,放進去之後裡面的值1其實也就變成了浮點型,即1.0,不過c#輸出的時候,很聰明的把後面的.0www.cppcns.com去掉了。

結論:佔位元組小的可以向佔位元組大的www.cppcns.com自動轉換,但佔位元組大的不能向佔位元組小的自動轉換。

這種資料型別的轉換是自動完成的,所以叫做自動型別轉換。

如果我偏要把位元組大的賦值給位元組小的怎麼辦呢?試想,生活中我們把大盒子中的東西裝進小盒子,東西少還好,東西多了就只能裝進去一部分了。現在我說,我不聽我不聽,我就是要把大盒子的東西裝進小盒子。哭唧唧……

沒辦法,我們只能使用強制型別轉換,即把佔位元組大的資料型別強制轉換為佔位元組小的資料型別。

double a = 1.2;

int b = (int)a;

console.writeline(b);

我們在引用變數a給b賦值時,在a前面加了個括號,就是把資料型別強制轉換為括號裡的資料型別。我們執行一下,結果是:1

a的值是1.2,強制型別轉換賦值給了b之後就只剩1了,因為整型的沒有小數部分,所以裝不下了啊。

總結本文標題: c#中的自動型別轉換和強制型別轉換

本文位址:

c 類的自動型別轉換和強制型別轉換

下面討論類的型別轉換。我們先來看看c 是如何處理內建型別轉換的。將乙個標準型別變數的值賦給另一種標準型別的變數時,如果這兩種型別相容,則c 自動將這個值轉換為接受變數的型別。double time 11 int value 11 converted to type double利用建構函式將內建型別...

C 型別的自動轉換和強制轉換

int a 12 a 22.5 a int num int 99.5 int num2 int 99.5 兩種寫法都正確將浮點型變數賦值給整型變數時,捨棄小數部分 將整型資料賦值給浮點型變數時,數值不變,但是以指數形式儲存 將double型資料賦值給float型變數時,注意數值範圍溢位 字元型資料可...

c 小灶 8 自動型別轉換和強制型別轉換

前面已經認識了不同的資料型別,你們有沒有嘗試過讓不同的資料型別進行運算呢?int a 1 double b a console.writeline b 執行結果是 1 我們把乙個整型的變數賦值給了乙個浮點型的變數,可以正常的輸出,如果我們把乙個浮點型的變數賦值給乙個整型的變數呢?double a 1...