2016-03-01 32 views
-4

我想創建一個程序,將一個字符轉換成一個數字,乘以3,創建3個隨機數字,將加起來的值,然後顯示在一個文本框中分隔一個逗號。System.FormatException C#

我創建的隨機數字將在0到encodedValue之間,將它們取平均爲k,並在隨機數字除以k,最後將其舍入爲整數。

a = rnd.Next(0, encodedValue); 
b = rnd.Next(0, encodedValue); 
c = rnd.Next(0, encodedValue); 

k = (a + b + c)/encodedValue; 

a /= k; 
b /= k; 
c /= k; 

a = Math.Round(a); 
b = Math.Round(b); 
c = Math.Round(c); 

我縮小代碼發現,這些3線是這個問題,我想這些數字的逗號添加到encodedString,讓他們3位數字,並添加到數字的末尾:

encodedString += a.ToString("D3") + ","; 
encodedString += b.ToString("D3") + ","; 
encodedString += c.ToString("D3") + ","; 

我收到錯誤

System.FormatException: Format specifier was invalid. 
+2

如果你告訴我們,你會得到什麼錯誤或預期的不工作,這將有助於。 – Jeff

+0

請包括[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。另請閱讀[我如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)。 – Igor

+1

那麼,顯然格式說明符是無效的,這意味着''D3「'不是爲'a','b'或'c'類型指定的有效格式。既然你沒有告訴我們這是什麼類型,它是任何人猜測實際類型是什麼,因此什麼是合法格式說明符。請發佈[mcve]完成這些變量的類型,我們可以提供幫助,但是您應該從這些3變量類型的'.ToString'文檔開始,它可能會告訴您什麼是法律格式說明符是,並且使用哪個說明符來獲得你想要的格式。 –

回答

0

我解決我的問題呢。

的問題似乎是,該值abc不會在.ToString("D3")接受"D3"的格式選項,而是希望我能創造這是.ToString("000")自定義格式選項。

完整的代碼是不是:

encodedString += a.ToString("000") + ","; 
encodedString += b.ToString("000") + ","; 
encodedString += c.ToString("000") + ","; 
相關問題