StrToInt 已轉換但出現錯誤 |
答題得分者是:careychen
|
cod3339
一般會員 發表:27 回覆:15 積分:8 註冊:2004-12-07 發送簡訊給我 |
以下是我分晰一行字串並取出字串中的數值,最後再把數值相加,但在price = StrToInt(result[i][1]);
出現錯誤訊息 : "這並不是int " 請問各位這問題出在那? [code cpp] String s=""; String desName="";//設計師編號 String result[10][2];//最多服務項目可以十種[0編號][1價錢] int price = 0;//總價錢 int tempP = 0; for(int i =0;i s = ListBox2->Items->Strings[i 1]; result[i][0] = s.SubString(1,s.Pos(" ")).c_str();//取得編號 s = s.SubString(result[i][0].Length() 12,s.Length()-result[i][0].Length()); //空格為十二個 result[i][1] = s.SubString(1,s.Pos(" ")).c_str(); price = StrToInt(result[i][1]); / / <==問題點,明明已轉成 int 為何還會出現,這不是int 的錯誤訊息 } [/code] |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
(1)建議在轉換的時候,不要直接用 StrToInt,改用 TryStrToInt,它會幫你檢查字串是否可以轉換,例如:
[code cpp] AnsiString a1="123"; AnsiString a2="abc"; int i1, i2; if(TryStrToInt(a1, i1)) { ShowMessage("succeeded"); ShowMessage(i1); } else { ShowMessage("failed"); } if(TryStrToInt(a2, i2)) { ShowMessage("succeeded"); } else { ShowMessage("failed"); ShowMessage(a2); } [/code] (2)會發生錯誤,通常是你要轉換的字串,沒有辦法轉換成數值,建議你再檢查要轉換的字串,是否會有這種情況發生
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
編輯記錄
RaynorPao 重新編輯於 2008-09-04 12:49:18, 註解 無‧
|
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
|
cod3339
一般會員 發表:27 回覆:15 積分:8 註冊:2004-12-07 發送簡訊給我 |
1.我剛試過兩位大大的方法,都是相同的結果 - 轉換失敗。
這個原因有點奇怪,因為我在 String result[10][2]; 是宣告為 String 然後再用轉 StrToInt()轉型失敗。 2.我要轉型的內容,有用Label->caption 看過例 :"199" 、"299" 之類,並未發現非數值字串 , 用 (int ) result[0][1]; //compiler 是無法過的,好像是不能直接轉之類 不知各位有遇過相同的經驗,或是解決方法嗎??? 還是有其他轉型的方式,可以把 String 轉型成 int? |
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
|
cod3339
一般會員 發表:27 回覆:15 積分:8 註冊:2004-12-07 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |