我很長一段時間C#開發人員,最近不得不看一些VB6代碼。經過一番挖掘,我們發現,在某個地方,不知何故,我們將一個數字存儲爲一個字符串。現在我們正在閱讀它,並且我們的代碼沒有很好地處理文化差異。這裏有一個例子:VB6 - 使用特定文化將字符串轉換爲double?
Dim text as String
Dim myVal as Double
Set text = "1,123456"
'This sets the value of myVal to 1123456 on our system - incorrect
myVal = text
Set text = "1.123456"
'This sets the value of myVal to 1.123456 on our system - correct
myVal = text
銘記,這是VB6和VB.NET不是,是否有任何內置的方法,函數,什麼的,能夠在字符串中使用一種特定的文化轉換爲雙? 或者至少,暗示轉換我們可能會處理不同的格式?
我們仍在挖掘價值的寫作方式,看看我們是否可以逆向設計流程,以便爲我們提供一致的結果。但是,我們的客戶已經擁有一種格式或另一種格式的數據(或者兩者都有,我們正在檢查......),所以適當的轉換算法或實現在這一點上會是更好的答案。
您將需要一些關於數字來自何處的知識以瞭解如何轉換它。對於一個非常簡單的方法,你可以用一個替換。並傳遞給'Val()'。當然,如果你得到12,345.67,那麼你就搞砸了。 – Deanna 2012-03-22 12:34:47