C 的資料型別 資料型別的轉化

2022-09-15 05:15:08 字數 3041 閱讀 5094

一、c#有15個預定義型別,其中13個是值型別,兩個是引用型別(string 和 object)這裡主要說明整型、浮點型、布林型以及引用型

1、整型資料

2、浮點型

浮點型從精度有低到高有float、double、decimal。他們的命名規則如下:

(1)、float資料型別用於較小的浮點數,因為它要求的精度較低。

double資料型別比float資料型別大,提供的精度也大一倍(15位)。

如果在**中沒有對某個非整數值(如12.3)硬編碼,則編譯器一般假定該變數是double。

如果想指定該值為float,可以在其後加上字元f(或f),如:

float f = 12.3f;

(2) decimal型別專門用於進行財務計算,使用decimal型別提供的28位的方式取決於使用者。

要把數字指定為decimal型別,可以在數字的後面加上字元m或(m),如:

decimal d=12.30m;

3、布林型

布林型只會返回兩個值ture/false.

int a=ture/false;

4、字元型

它的定義是 char='只能放乙個字元';

如果把字元把放在""(雙引號)內,編譯器會把它看作是字串,從而產生錯誤。

二、常量和變數的區別

變數:是指在程式的執行過程中隨時可以發生變化的量 常量:是指在程式在執行過程中不會發生變化的變數。

常量的特點:1、必須在宣告是賦值

2、不能在在程式執行時,給常量賦值

3、常量是靜態的。不必須(實際上,是不允許)在常量宣告中包含修飾符static

三、不同資料型別之間是如何轉換的

1、在c#中資料型別轉換分為兩種:

1)隱式[又叫自動]型別轉換

double和int之間就是(飛機場與飛機)這種關係,我們可以這樣理解,double的取值範圍比int要大得多所以double可以裝得下int :

int a=1234;

double b=a; 系統會把a整型變數的值賦值給double變數b.這就是隱式[又叫自動]型別轉換

那反過來:

double a=1234;

int b=a; //系統編譯時會報錯

2)顯式[又叫強制]型別轉換

那如何進行強制轉換呢?c#提供了非常簡便的方法,如:

double a=1234;

int b=(int)a; //這樣就強制把double型別,轉換為int型別

2、其它資料型別之間的轉換(1、字串轉換為其它型別 2、任意型別之間的轉換)

1)、字串轉換為其它型別

語法:xx.parse(字串); 這裡的xx代表的如:double,int,bool等

舉個例子來說明一下:

string strvalue="123.45"; //這是乙個字串,時面的值是"123.45"

現要把它轉換成小數型別,就可以使用double.parse();來進行轉換

double dvalue=double.parse(strvalue);

2)、任意型別之間的轉換

語法:目標資料型別 變數名=convert.toxx(轉化前的變數名);

如:把乙個布林型別轉換為整型

bool a = true;

int b = convert.toint16(a);

console.writeline("轉換後的結果是:"+b); //轉換後的結果是:1

注意:c#中型別轉換的有兩種,()轉換和convert轉換

(1)這兩個方法的最大不同是它們對null值的處理方法:

convert.toint32(null)會返回0而不會產生任何異常,但int.parse(null)則會產生異常。

沒搞清楚convert.toint32和int.parse()的細細微區別時千萬別亂用,否則可能會產生無法預料的結果,舉例來說:假如從url中取乙個引數page的值,我們知道這個值是乙個int,所以即可以用convert.toint32(request.querystring["page"]),也可以用,int.parse(request.querystring["page"]),但是如果page這個引數在url中不存在,那麼前者將返回0,0可能是乙個有效的值,所以你不知道url中原來根本就沒有這個引數而繼續進行下一下的處理,這就可能產生意想不到的效果,而用後一種辦法的話沒有page這個引數會丟擲異常,我們可以捕獲異常然後再做相應的處理,比如提示使用者缺少引數,而不是把引數值當做0來處理。

(2)還有一點區別就是

a. convert.toint32(double value)

如果 value 為兩個整數中間的數字,則返回二者中的偶數;即 3.5轉換為4,4.5 轉換為 4,而 5.5 轉換為 6。 不過4.6可以轉換為5,4.4轉換為4

b. int.parse("4.5")

直接報錯:"輸入字串的格式不正確".

c. int(4.6) = 4

int轉化其他數值型別為int時沒有四捨五入,強制轉換

int.parse是轉換string為int

convert.toint32是轉換繼承自object的物件為int的.

你得到乙個object物件,你想把它轉換為int,用int.parse就不可以,要用convert.toint32.

個人總結:

(1)convert.toint32的引數比較多,int.parse只能轉換string型別的.

(2)parse就是把string轉換成int,char,double....等,也就是*.parse(string) 括號中的一定要是string.

(3)convert可以提供多種型別的轉換,也就是convert.*()括號中可以為很多種型別(包括string).

c 資料型別轉化

目錄 cpp中引入了流的概念,同時我們也可以使用流來進行資料轉換,主要用來進行資料型別轉換,相比c中的資料型別轉換,其沒有資料溢位的風險,同時由於目標物件的型別會被自動推導出來,所以也更為安全。include include include using namespace std int main ...

資料型別的轉化

在c c 裡,是通過變數型別 變數名 數值,來對乙個變數初始化,同樣,對於任意精度的資料型別,我們也可以採用這種方式來進行變數初始化。在vivado hls裡是支援copy initialization y 和direct initialization y 這兩種方式來進行初始化,但不支援unifo...

資料型別的轉化

1.基本資料型別 布林型別 數值型別 字串型別 undefined null 2.引用資料型別 陣列 物件 函式 1.布林值 真 true 假 flase 英文 boolean bool 2.字串型別 由字元 數字 符號等組成的一串資料型別 string str 由單引號或者雙引號包裹 字串的拼接 ...