一、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 由單引號或者雙引號包裹 字串的拼接 ...