將一些代碼從VB6移植到VB.NET。它一直使用Write
和WriteLine
來產生輸出文件。在VB.NET中編寫格式化代碼
現在,我需要比較來自原始和移植代碼的輸出,但數字格式化存在一個小問題。例如,而VB6代碼Write
的只有我.5
中,VB.NET代碼產生0.5
,而不是.0005
(原件)寫入5E-4
等
我怎樣才能讓VB.NET的Write
,以相同的格式寫號作爲VB6?重構編寫代碼以包含格式化步驟的選項是不可接受的。
將一些代碼從VB6移植到VB.NET。它一直使用Write
和WriteLine
來產生輸出文件。在VB.NET中編寫格式化代碼
現在,我需要比較來自原始和移植代碼的輸出,但數字格式化存在一個小問題。例如,而VB6代碼Write
的只有我.5
中,VB.NET代碼產生0.5
,而不是.0005
(原件)寫入5E-4
等
我怎樣才能讓VB.NET的Write
,以相同的格式寫號作爲VB6?重構編寫代碼以包含格式化步驟的選項是不可接受的。
在VB.NET中,您可以在Write/WriteLine調用中使用String.Format函數。
示例:在格式化的字符串
Console.WriteLine(String.Format("{0:c}", price))
的更多信息可以發現here。
您是否已檢出功能Microsoft.VisualBasic.Format?
Write(handle, arg.ToString("#.####"))
而不是前面提到的String.Format調用。將從20K行到VB.NET的解決方案轉換爲VB.NET並不像看起來那麼簡單,因此我稱之爲「移植」。 – zzandy 2010-03-10 08:50:11
通過說*重構是不可接受的*我的意思是,我沒有時間去通過每個調用'Write'和'WriteLine'並將其改爲'Write(handle,arg.ToString(「#。## ##「))'獲得小的好處。 – zzandy 2010-03-10 08:52:55
@zzandy - 不確定你的第一個評論的目的,但我已經將VB6項目移植到了.NET中。用Visual Studio錄製的宏可以在幾秒鐘內完成第二條評論。你有沒有在VS記錄宏? – 2010-03-10 13:44:07
順便說一下,'Console.WriteLine'已經有一個和String.Format一樣的重載。 – 2009-09-08 13:36:19
謝謝,但代碼不寫入控制檯,它使用'FileSystem.WriteLine'例程寫入文件,它沒有格式化選項。 另外,將所有調用從'Write(handle,arg)'改爲Write(handle,String.Format(「{0:c}」,arg))'是最後一個選項,因爲我有太多'Write'和'WriteLine'調用。 – zzandy 2009-09-08 13:41:16