2014-02-17 73 views
-1

如何轉換字符串(X LE)至INT(X)如何轉換字符串(X釐米)到INT(X)X =數

X =編號

我使用:

Convert.ToInt32(Form1.sendproductprice1)*Convert.ToInt32(Form1.sendamount)); 

實施例:

Form1.sendproductprice1 = "25 LE"; 
Form1.sendamount = 5; 

然後值必須是125

但我得到錯誤「輸入字符串格式不正確」

+0

請正確格式化發佈的代碼,以便您的問題更具可讀性。編輯器中有一個按鈕,看起來像'{}'。只要選擇你的文字,按下按鈕即可。 –

+3

你必須帶上數字的子字符串。而不應該是125? ;-) – Koen

回答

0

代碼應該是工作:

Convert.ToInt32(Form1.sendproductprice1.Split(' ')[0])*Convert.ToInt32(Form1.sendamount)); 
+0

感謝它很簡單,它工作 –

+0

不客氣) – melvas

0

您可以使用此代碼提取字符串的數量(它允許你提取的數目,即使它不是在beggining)

for (int i=0; i< Form1.sendproductprice1.Length; i++) 
{ 
    if (Char.IsDigit(Form1.sendproductprice1[i])) 
     number += Form1.sendproductprice1[i]; 
} 

然後如果你做Convert.ToInt32(number)它會工作得很好

你也可以使用正則表達式。下面

1

顯然,25 LE不能轉換爲整數這樣。你必須從文本中分離出數字。在這種情況下,你可以使用

var num = Form1.sendproductprice1.Split(' ')[0]; 

基本上需要你輸入,用空格分割,並從結果採取的第一項。然後這將工作

Convert.ToInt32(num)*Convert.ToInt32(Form1.sendamount)); 
+0

如果輸入以空格開始,您需要'RemoveEmptyEntries'嗎? – Default

+0

@Default我想你會的。但是我應該提到將一個數字與一個字符串分離的所有隱藏問題,這將是一個更長的答案。 –

+0

只是提到它,因爲OP輸入*看起來*是很多空白。這裏沒有其他答案可以處理它。 – Default

0

您將首先需要將字符從字符串中分離出來,以便能夠將數字轉換爲整數類型。

Convert.ToInt32(Form1.sendproductprice1) 

如果字符串不是整數,會拋出異常。

在你的情況(在本例中,你所提供)的字符串如下:"25 LE"

如果分隔符始終是一個空間,那麼它很容易:

var test = "25 LE"; 
var splitted = test.Split(' '); 
var digits = splitted[0]; //Will get you the digits only. 
0

如果你要處理的空白您可以使用Regex以解析輸入

string input = " 25 LE "; 
Regex regex = new Regex("\\d+"); 
Match match = regex.Match(input); 
if (match.Success) 
{ 
    int number = Convert.ToInt32(match.Value); // number contains 25 
} 
相關問題