私は長い間C#デベロッパーであり、最近VB6コードをいくつか見なければなりませんでした。いくつかの掘り出した後、我々はどこかで、何とかして、数字を文字列として保存していることを発見しました。今、私たちはそれを読んでおり、私たちのコードは文化の違いをうまく処理していません。次に例を示します。これは、VB6とNOT VB.NETであることを念頭に置いてVB6 - 特定のカルチャを使用して文字列を倍精度に変換しますか?
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
キーピング、特定のカルチャを使用して、二重に文字列を変換することができます任意のビルトインメソッド、関数、何がありますか? 少なくとも、私たちが別のフォーマットを扱っている可能性のある変換を示唆していますか?
値がどのように書き込まれているかを把握しており、プロセスをリバースエンジニアリングして一貫した結果を得ることができるかどうかを確認しています。しかし、私たちの顧客はすでにデータをある形式か他の形か(または両方をチェックしています)、適切な変換アルゴリズムまたは実装が現時点でより良い答えになるでしょう。
変換する方法を知るためには、その番号がどこから来たのかについていくつかのコンテキストが必要です。非常に単純な方法については、 'Val()'に渡します。もちろん、もしあなたが12,345.67を得れば、あなたはうんざりです。 – Deanna