2013-07-20 158 views
0

嗨,大家好,我一直在嘗試各種方法來解決這個問題,但我可以希望有人能幫助我字符串從掃描儀格式化

認爲沒有IM的

我的掃描儀給我,格式爲0000的字符串來顯示的重量,我需要把它變成00.00或0.00我曾嘗試這樣的東西

String.Format("{0:0.00}", data); 

,以及將其轉換爲十進制,然後嘗試此

data.ToString("0.00"); 

我attemps的所有的一切都結束吧舒這樣我的數據g是0500,然後它作爲500.00「最終

能有人給我一個建議,請

最終代碼

var data4 = data3.Insert(2, "."); 
string data5 = double.Parse(data4).ToString("F", CultureInfo.GetCultureInfo("en-US")); 
label8.Text = data5; 
+0

是它始終爲4個字母?你可以'string.Insert(2,「:」)'如果是這樣的話,否則'string.Insert(string.Length - 2,「:」)' – Sayse

回答

0

使用predefined string formatters in .NET Framework,在這種情況下˚F用於固定 - 點:

var s = "0000"; 
System.Console.WriteLine(double.Parse(s).ToString("F", CultureInfo.GetCultureInfo("en-US"))); 
s = "0750".Insert(2,","); 
System.Console.WriteLine(double.Parse(s).ToString("F", CultureInfo.GetCultureInfo("en-US"))); 

輸出將是:

0.00 
7.50 

你也可以直接進行格式化使用string.Format字符串:

string.Format("{0:F2}", s, CultureInfo.GetCultureInfo("en-US")); 

輸出將是:

07,50 
+0

我試過「F」,它仍然返回500.00出於某種原因,我不會在其他人回答去了,data3.Substring(0,2)+「。」 + data3.Substring(2)的作品,但我有點希望我可以使5.00或0.40或11.00,這取決於 – quatre432

+0

@ quatre432這很有趣 - 在我的情況下,它沒有進一步的變化工作。無論如何,在使用** F **進行格式化之前,請插入小數點(**,**或**。** - 取決於文化)。 – pasty

+0

我有道理現在對不起,它花了我一分鐘 – quatre432