2016-12-28 36 views
-1

所以這仍然有一些邏輯錯誤,我正在努力。我並不擔心那些我想弄明白自己的人。我正在爲一些獨立研究的老虎機應用程序工作,當我嘗試解析顯示玩家將現金變成變量的標籤的值時,我得到一個格式異常。有人可以向我解釋如何解決這個問題,更重要的是爲什麼我得到這個例外。我也嘗試使用tryparse和convert.todouble。感謝您的幫助。對不起,如果這是一個愚蠢的問題。我還在學習。得到一個格式異常解析一個字符串到一個雙重

protected void PullBTN_Click(object sender, EventArgs e) 
{ 

    //get players cash//////////////////////////////   
    double playersCash = Convert.ToDouble(playerMoneyLBL.Text); 

    //other way i tride that didn't work//////////// 
    //double playersCash = 0; 
    // double.TryParse(playerMoneyLBL.Text.Trim(),out playersCash); 

    // get players bet ///////////////////////////// 
    double playerBet = 0; 
    if (!double.TryParse(betTB.Text, out playerBet)) 
     return; 

    // spin the slots////////////////////////////// 
    Image1.ImageUrl = spinReel(); 
    Image2.ImageUrl = spinReel(); 
    Image3.ImageUrl = spinReel(); 

    //find multiplier////////////////////////////// 
    double multiplier = findMultiplier(); 

    //find winnings/////////////////////////////// 
    double winnnings = multiplier * playerBet; 
    playerMoneyLBL.Text = (playersCash + winnnings).ToString(); 
    //add winnings to players money////////////// 
    playerMoneyLBL.Text = (playersCash + winnnings).ToString(); 
} 
+2

該行給出了錯誤。不要只是發佈完整的代碼 –

+0

獲取球員現金評論 – Roger

+0

小心取出不相關的代碼,最有可能這條線'double playersCash = Convert.ToDouble(playerMoneyLBL.Text);''而不是使用'TryParse' 'Convert.To ...' –

回答

2

你的問題在這裏。

playerMoneyLBL.Text = "$100"; 

正如你在前期的100 $,你不能將其轉換成浮動。讓它像這樣。

double playersCash = Convert.ToDouble(playerMoneyLBL.Text.substring(1)); 
1

double.Parse默認使用當前環境下的CurrentCulture設置。

double d = double.Parse("Your Text Here", CultureInfo.InvariantCulture); 

,或者如果你想更安全的方式嘗試

value = "Your String"; 
style = NumberStyles.Number | NumberStyles.AllowCurrencySymbol| NumberStyles.AllowThousands; 
culture = CultureInfo.InvariantCulture 
if(Double.TryParse(value, style, culture, out number)) 
{ 
    //write your code for true condition 
} 
else 
{ 
    //write your code for false condition 
} 
相關問題