看板 C_Sharp 關於我們 聯絡資訊
※ 引述《aa12783509 (Ace)》之銘言: : 各位在這邊的大大們 本人最近在外面上課學習網頁的部分 : 剛好有交到C#的部分 有一些問題 : 因為自己以前是學習C++的部分 所以前半段的課程會些許簡單 : 會想要自己去摸索一些自己覺得有興趣的地方 : 雖然不知道要發在Web_Design比較好 還是這邊 : 如有問題 會在下次發問注意的 往後會多在這邊發文麻煩各位了>< : -------------------------------------------------- : 就在今天講到了溫度的轉換例題 這個在C++的部分對我來講很簡單 : 要cin , cout都不是什麼問題 那在C#的部分也想要這樣來搞搞看 : 因為C#的部分是網頁的 不像是有CMD的部分可以自己輸入 : 那好奇心作祟 就使用了TextBox的部分來讓他可以輸入 : 那因為TextBox的值是字串 所以要轉換為數值才能做運算 : 以下這部分是我自己邊找資料、邊想的程式碼 : string boxtxt = TextBox1.Text; : double k, num; : //double num = double.Parse(TextBox1.Text); : double.TryParse(TextBox1.Text, out num); : k = num * 9 / 5 + 32; : Response.Write("華氏溫度 = " + k); : 1.我想要問一下說 這樣的寫法有沒有其他比較好的 : 我有去跑過這樣是可行的 但是不知道這樣算不算是OK的 : 感覺有點像是東湊西湊湊出來的XDDD OK : 2.那我想要問的是我註解的那一行是使用Parse的部分不會有底線的 : 但是實際下去Run了之後 他會顯示什麼給的字串有問題 那這個有辦法解決嘛!? : 括號裡面有試過TextBox1.Text boxtxt 加上雙引號 都是沒有問題 但run就會出現狀況 Debug 時出問題記得要給錯誤訊息別人才知道是什麼問題 我是不清楚版上有多少人會通靈,但我想大部分人應該都不會 不過用 Parse 會出錯誤通常是字串格式錯誤 (非數字格式字串) Empty、空格都會算是錯誤,所以如果要用 Parse 要嘛除非確定輸入一定是正確格式,不然就要先檢查或用 Try Catch 包起來 : 3.有看到有資料說 使用TryParse字串轉換成功 > Parse!? 會比較建議用TryParse嘛!? 如我剛才所說,用 TryParse 或用 Parse 都可以 如果輸入不確定一定是正確格式,那會建議用 TryParse 但若確定一定會是正確格式 或者你在轉換前會自行先檢查、或者用 Try Catch 包起來的話,用 Parse 也沒差 : 4.最後想要問的說 像這種轉換有什麼比較通用的寫法或作法嗎!? 似乎看到蠻多種的! : 因為好像有看到用什麼 int.~~~ 或者是 Int32.~~~~ 好像還有Conver.ToDouble(); double 是雙精準浮點數,int 跟 int32 一樣是整數 如同 double.Parse(input) 會把來源轉成雙精準浮點數資料型態 int.Parse(input) 就是把來源轉成整數資料型態 另外 Convert 類別在 MSDN 寫得很詳細 https://msdn.microsoft.com/zh-tw/library/system.convert(v=vs.110).aspx -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.173.3.123 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1517450067.A.F7A.html ※ 編輯: ssas1115577 (218.173.3.123), 02/01/2018 09:57:11
aa12783509: 謝謝你 至於錯誤訊息的話 我試試看有沒有辦法用出來 02/01 13:45
aa12783509: 要不然就是回家用電腦附上 02/01 13:45
gundan: 或是你把 TextBox1.Text 的原始資料附上應該也可以 02/01 17:43
aa12783509: 不好意思 剛回到家 在下面補上圖片 謝謝幫忙解答 02/01 20:12
aa12783509: https://imgur.com/a/VnLgA 02/01 20:12
aa12783509: 在double.Parse的括號裡面 我有加雙引號也是不行 02/01 20:13
aa12783509: 因為我一開始看資料她是用"數字" 他可以直接跑出來 02/01 20:13
aa12783509: 我的想法是 應該是要放boxtxt或者是去抓TextBox的值吧 02/01 20:14
aa12783509: 還是那只能放明確的字串 無法使用boxtxt,TextBox這類 02/01 20:16
aa12783509: 再補充問一個好了 在程式碼的第一行 02/01 20:19
aa12783509: string boxtxt = TextBox1.text 這後面有需要加入 02/01 20:19
aa12783509: .ToString(); 嘛!? 有聽說 如果都沒有給他值的話 02/01 20:23
aa12783509: 好像這部分就可以不用加的樣子!? 02/01 20:23
aa12783509: 那我想要問一下 我這樣的程式碼 照我正確的方法去跑 02/01 20:24
aa12783509: 為什麼一開始打開網頁 他攝氏溫度就會有一個32在那邊? 02/01 20:24
aa12783509: 在還沒有輸入值的狀態下 如果我提供的程式碼 02/01 20:24
aa12783509: 或者是照片不夠詳細 我可以擷取多一點部分 02/01 20:25
Laluth: 你是不是寫在Page_Load裡 而且沒有設定初始值 02/01 23:02
aa12783509: 對 我是寫在Page_Load裡面沒錯 初始值是指? 這部分 02/02 08:20
aa12783509: 我應該是沒有做到沒錯不好意思這部分比較不了解! 02/02 08:20
vi000246: 你下個中斷點用即時運算視窗觀查變數 02/02 08:37
vi000246: 就能知道有沒有符合格式了 02/02 08:37
gundan: 錯誤出現的時候你把滑鼠移到TextBox1.text的地方就可以 02/02 10:05
gundan: 看到當時的值是什麼 02/02 10:05
gundan: TextBox1.text的型態本來就是string了不需要ToString 02/02 10:06
gundan: 初始值就是在程式一開始就設定好值給他 02/02 10:09
gundan: Page_Load其實是初始化做完之後才會跑到 02/02 10:09
gundan: 所以你出錯的地方textBox.text應該是空字串 所以出錯 02/02 10:10
aa12783509: 謝謝您們 我找到問題點了 今天有看到一個表格比較詳 02/02 15:16
aa12783509: 細的表格介紹 提到 一開始是String Empty如果是使用T 02/02 15:16
aa12783509: ryParse因為是錯誤的 所以就會跑out 變數 但是Parse 02/02 15:16
aa12783509: 沒有給他初始值 是空的 就是我上面跳出來的錯誤訊息 02/02 15:16
aa12783509: 輸入字串錯誤 又因為放在Page_Load一開始就讀取了所 02/02 15:16
aa12783509: 以要導致出現那個錯誤訊息 02/02 15:16