【入門級】-[資料型別]-資料型別轉換

閱讀時間約 6 分鐘
當我們在撰寫程式過程中,有可能會遇到在做資料處理時與一開始宣告的資料型別不一樣,這時就會需要資料型別轉換了。那這邊有四種轉換介紹:

一、自動轉型

運算過程中在精確度不會改變時,程式就會自動幫我們做轉型處理,什麼意思呢?就是小範圍可以放入大範圍中,但大範圍無法放入小範圍去做運算。還是不懂?沒關係這邊用例子來說明:
正常處理:
double A = 120;
double B;
B = A + 3.45;
A = B * 2;
說明:
第一行:宣告倍精度浮點數A,且初始值為120
第二行:宣告倍精度浮點數B,無特別設定初始值
第三行:(1)B的值要看"="右邊的值,也就是120+3.45=123.45
    (2)得知B為123.45

第四行:(1)A的值要看"="右邊的值,也就是B*2
    (2)這個B值呢!是看最後的結果也就是123.45
    (3)因此B*2 = 123.45 * 2 = 246.9,得知A最後的值為246.9
遇到需要做轉換的狀況就會是:
int A = 120;
double B;
B = A + 3.45;
A = B * 2;
說明:
第一行:宣告整數A,且初始值為120
第二行:宣告倍精度浮點數B,無特別設定初始值
第三行:(1)運算結果是存到B,因此運算內容要與B的資料型別相同
    (2)由於B是double(倍精度浮點數),A是int(整數),int轉double是不會影響精確度的
    (3)因此A就會從int自動轉換為double型別後再做運算

第四行:(1)此時就不一樣了,運算結果是存到整數型別A
    (2)雖然運算內容”2”是整數沒問題,但B卻是倍精度浮點數
    (3)因此精確度是會被影響到,無論B的值是不是2.0000這樣的數值,電腦都會出現錯誤
只要「運算結果的資料型別」可以容納的下「運算內容的資料型別」範圍,電腦就可以暫時再那一行運算當中做自動轉換型態的動作。

二、明確轉型

有一個Type Cast的方法可以強行轉換資料型別,方法:
結果值 = (想要強迫轉換的型別)運算式 或 變數名稱;
這邊舉個例子:
int A;
double B = 3.14;
A = (int)B;
由於B是double而A是int,要將B的值給予A但型別不符,因此使用A的型別將B強制轉換為int,此時A的結果為3。
因為是強制轉換關係,因此會遺失小數點後面的值,所以在使用的時候要注意。

三、Parse方法

若遇到文字型別的數字,想要將它轉為數值時,就可以使用Parse()方法來轉換,方法:
數值變數 = 資料型別.Parse(文字型別的數字);
什麼是文字型別的數字?就是
string C = ”66”;
像這樣的形式就是文字型別的數字,string是字串型別可以加入文字的,但也會接收到有關數字的時候,倘若說字串中只有數字時想要轉為數值就可以使用Parse()方法若字串中有非數字時可能轉換時就會出現錯誤唷
用上面例子舉例就會是:
Int D = int.Parse(“66”);

四、轉換成字串

1.自動轉換

由於有時候在使用VC#時會用到工具箱的Label元件,那麼此時想要將一些數字轉成文字型態就可以這麼做:
string msg = ”今年是”;
int year = 2023;
Label.Text = msg + year;
那麼Label.Text會因為”+”號而將兩者做串接,輸出結果就為「今年是2023」這樣的字串,那麼year也會在這當中暫時自動轉換為字串型別。

2.明確轉換

有時候查詢日期時間或是其他內容的時候就需要去做轉換的動作,那麼有兩種可以明確轉換方法就是:
(1)字串變數 = Convert.ToString(要轉換的資料 或 變數名稱);
(2)字串變數 = 要轉換的資料 或 變數名稱 .ToString();
舉例:
int A = 2023
string B = Convert.ToString(2023);
string BB = Convert.ToString(A);
string C = 2023.ToString();
string CC = A.ToString();

筆記補充:日期時間的轉換

1.取得當下時間

DateTime dtNow= DateTime.Now;
string S= dtNow.ToString("yyyy-MM-dd HH:mm:ss");
DateTime dt=Convert.ToDateTime(S);
說明:
(1)第一行是取得當下時間
(2)第二行是將資料字串格式化
yyyy-MM-dd是年月日部分
HH:mm:ss是時分秒數的部分(這邊的HH是24小時制,改成hh就為12小時制了)
(3)第三行是將字串轉回日期格式


2.時間差計算

DateTime dt1= Convert.ToDateTime("2023-03-29 00:00:00");
DateTime dt2= Convert.ToDateTime("2023-03-30 00:00:00");
TimeSpan ts = dt2- dt1;

double dDateDiff = ts.TotalDays;
label1.Text = "日期相差 " + Convert.ToInt32(dDateDiff).ToString() + "天";
int iDateDiff = ts.Days;
label2.Text = "日期相差 " + iDateDiff.ToString() + "天";
說明:
1.第一、二行是取得兩個時間
2.第三行是做相差運算,得知時間差距
3.第四、五行是使用.TotalDays來做處理,但是TotalDays是double型別,因此會有小數問題,故在做顯示的時候會將運算後的值強制轉成32位元的整數型態
4.第六、七行是使用.Days來做處理,由於Days為int型別,因此不會有小數問題,可直接做顯示沒有問題的。

參考內容:
1.Visual C# 2017基礎必修課
2.C# Date() 日期與時間
3.C# Tips: TimeSpan 的 TotalDays

為什麼會看到廣告
avatar-img
21會員
43內容數
Hello~ Welcome to my blog~❤ 這邊會分享我在程式這條道路中的學習與成長, 過程中從而了解自己的不足,再學習。 希望透過分享的方式, 也讓正在學習程式的夥伴們一起學習, 我們一起加油吧~ 「彼此都會成為彼此之間的影響力」(´,,•ω•,,)♡ ❣
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
橙果杏的沙龍 的其他內容
一、存取修飾詞public / private / protected / internal 二、參數修飾詞ref / in / out >>>>>由於我們在寫程式時,會去宣告一些變數、常數相關識別詞,並且在class(類別)中會寫一些事情或動作讓程式去運行,然而這個概念就是去定義對於我們所寫的內容
這次分享的是常數、變數、宣告與初始化。 [常數]就是固定不變的數,如:PI=3.14 [變數]顧名思義就是會改變的數,如:y=2x (在數學中x確定後y才會確定,因此x為自變數,y為應變數,x、y都屬於變數) 一、常數   常數在定義的時候,一開始就必須指定好資料型別並且給予值,因為它在整個程式在執
這次分享資料形態中的資料型別部分,在VC#流程架構介紹中有提到它如同中文有不同的詞性,那C#程式中有哪些型別呢?我們就來看一看。 一、常用的資料型別 當然還有自訂義的型別這就要看怎麼定義了,之後看內容狀況再來提,那麼資料型態是為了要做宣告用途,告訴電腦你的資料是屬於什麼類別的,這樣在做後續資料時程式
這邊要來跟大家分享流程圖是什麼?它很重要嗎? 一、什麼是流程圖?   它可以幫我們簡化密密麻麻的程式,用圖表來說明這支程式運行的來龍去脈,包含著流程的步驟、決策、輸出/輸入的相關過程。   當我們在製作程式過程中,可以協助我們紀錄、規劃流程、甚至是介紹程式或未來自己要看的時候,流程圖就可以派上用場
一、Visual Studio是什麼?   Viusal Studio亦是Microsoft Visual Studio,簡稱VS或MSVS,它是微軟所開發的一個基本完整的開發工具,它有三個版本Community(社群版)、Professional(專業版)、Enterprise(企業版),
一、C#介紹 二、為什麼要學C# 三、.NET Framework介紹
一、存取修飾詞public / private / protected / internal 二、參數修飾詞ref / in / out >>>>>由於我們在寫程式時,會去宣告一些變數、常數相關識別詞,並且在class(類別)中會寫一些事情或動作讓程式去運行,然而這個概念就是去定義對於我們所寫的內容
這次分享的是常數、變數、宣告與初始化。 [常數]就是固定不變的數,如:PI=3.14 [變數]顧名思義就是會改變的數,如:y=2x (在數學中x確定後y才會確定,因此x為自變數,y為應變數,x、y都屬於變數) 一、常數   常數在定義的時候,一開始就必須指定好資料型別並且給予值,因為它在整個程式在執
這次分享資料形態中的資料型別部分,在VC#流程架構介紹中有提到它如同中文有不同的詞性,那C#程式中有哪些型別呢?我們就來看一看。 一、常用的資料型別 當然還有自訂義的型別這就要看怎麼定義了,之後看內容狀況再來提,那麼資料型態是為了要做宣告用途,告訴電腦你的資料是屬於什麼類別的,這樣在做後續資料時程式
這邊要來跟大家分享流程圖是什麼?它很重要嗎? 一、什麼是流程圖?   它可以幫我們簡化密密麻麻的程式,用圖表來說明這支程式運行的來龍去脈,包含著流程的步驟、決策、輸出/輸入的相關過程。   當我們在製作程式過程中,可以協助我們紀錄、規劃流程、甚至是介紹程式或未來自己要看的時候,流程圖就可以派上用場
一、Visual Studio是什麼?   Viusal Studio亦是Microsoft Visual Studio,簡稱VS或MSVS,它是微軟所開發的一個基本完整的開發工具,它有三個版本Community(社群版)、Professional(專業版)、Enterprise(企業版),
一、C#介紹 二、為什麼要學C# 三、.NET Framework介紹
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
題目敘述 Integer to English Words 給定一個整數num 請轉換成對應的的英文數字表達(One, Two, Three, ... 那種數字表達式)
Thumbnail
我們在上一篇簡單介紹了 int(整數)是做什麼用的,接下來要介紹常和他一起出現的好朋友 float 浮點數 跟 str 字串。 float 浮點數: 函數的式子寫做 float( ) ,浮點數就是帶有小數點的資料型別,他可以將字串或是數字轉換為有小數點的狀態。前提是字串內的字符必須是數字的格
Thumbnail
今天要來介紹的是Python中資料型別的函數, 這幾天學習的素材是Youtube上“程式柴大大的Python 6 小時初學者課程”,一步一步帶著大家操作並解,學習中也別忘了要多多練習,練習的部分我是把我學到的東西請Chatgpt幫我出類似的題型並讓我練習。 以下我先寫出一個簡單的code,再加以
Thumbnail
這一章節介紹了PHP的各種資料型別,包括內建型別如整數、浮點數、布爾值、字符串、數組、對象、空值和資源,並解釋了型別轉換的方式。此外,還討論了自訂型別、元組型別、集合型別、陣列型別和字典型別的實現方法。
Thumbnail
內容涵蓋資料型別、型別轉換、自訂型別、元組型別、集合型別和字典型別等主題。文章首先詳述內建型別如bool、byte、char等的定義和使用,接著討論型別轉換,包括隱含轉換和明確轉換。之後文章介紹自訂型別的建立,以及元組、集合、陣列和字典型別的操作與例子。
Thumbnail
本文詳細介紹了Python中的各種資料型別,包括整數、字串、清單、元組、集合和字典,並提供了相關的操作範例。此外,還解釋了如何在Python中定義和操作變數,包括如何同時對多個變數進行賦值。
在求學階段,你已經對代數的計算熟到不能再熟,所以變數(variable)對你來說應該不至於太陌生,先來看看以下這個例子:   
Thumbnail
在先前的型別文章中,我們曾經聊過 JavaScript 常用的一些型別,但針對布林這個型別,我們沒有做太多的解釋,原因在於布林值在 JavaScript 會有一個特殊的規則:自動轉型 。 自動轉型可說是讓 JavaScript 為弱型別、且難以管理的最重要的要素,接著就來讓我們來聊聊什麼是自動轉型
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們在原有的資料表上,將欄位grade的資料型別從原本的float變更為int整數型別。 題目的原文敘述 測試範例 Example 1: Input: DataFrame students: +------------
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
題目敘述 Integer to English Words 給定一個整數num 請轉換成對應的的英文數字表達(One, Two, Three, ... 那種數字表達式)
Thumbnail
我們在上一篇簡單介紹了 int(整數)是做什麼用的,接下來要介紹常和他一起出現的好朋友 float 浮點數 跟 str 字串。 float 浮點數: 函數的式子寫做 float( ) ,浮點數就是帶有小數點的資料型別,他可以將字串或是數字轉換為有小數點的狀態。前提是字串內的字符必須是數字的格
Thumbnail
今天要來介紹的是Python中資料型別的函數, 這幾天學習的素材是Youtube上“程式柴大大的Python 6 小時初學者課程”,一步一步帶著大家操作並解,學習中也別忘了要多多練習,練習的部分我是把我學到的東西請Chatgpt幫我出類似的題型並讓我練習。 以下我先寫出一個簡單的code,再加以
Thumbnail
這一章節介紹了PHP的各種資料型別,包括內建型別如整數、浮點數、布爾值、字符串、數組、對象、空值和資源,並解釋了型別轉換的方式。此外,還討論了自訂型別、元組型別、集合型別、陣列型別和字典型別的實現方法。
Thumbnail
內容涵蓋資料型別、型別轉換、自訂型別、元組型別、集合型別和字典型別等主題。文章首先詳述內建型別如bool、byte、char等的定義和使用,接著討論型別轉換,包括隱含轉換和明確轉換。之後文章介紹自訂型別的建立,以及元組、集合、陣列和字典型別的操作與例子。
Thumbnail
本文詳細介紹了Python中的各種資料型別,包括整數、字串、清單、元組、集合和字典,並提供了相關的操作範例。此外,還解釋了如何在Python中定義和操作變數,包括如何同時對多個變數進行賦值。
在求學階段,你已經對代數的計算熟到不能再熟,所以變數(variable)對你來說應該不至於太陌生,先來看看以下這個例子:   
Thumbnail
在先前的型別文章中,我們曾經聊過 JavaScript 常用的一些型別,但針對布林這個型別,我們沒有做太多的解釋,原因在於布林值在 JavaScript 會有一個特殊的規則:自動轉型 。 自動轉型可說是讓 JavaScript 為弱型別、且難以管理的最重要的要素,接著就來讓我們來聊聊什麼是自動轉型
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們在原有的資料表上,將欄位grade的資料型別從原本的float變更為int整數型別。 題目的原文敘述 測試範例 Example 1: Input: DataFrame students: +------------