0

私は米国にいて、同僚はロシアにいます。私たちはそれぞれ次の宣伝文句を使用しています。

        Dim num As Single = 0.123
        Dim myData As XElement
        myData = New XElement(myPrefix + "Data", New XAttribute(myPrefix + "Type", "Number"), New XAttribute("foo", "bar"))
        myData.Value = num

ただし、Quickwatch で myData を調べるか、コンテンツを XML に保存すると、彼は0,123を表示し、私は0.123を表示します。これは明らかにロケールに基づいています。

これを防ぐ方法はありますか?コードはこの値を XML ファイルにエクスポートし、それを Excel で開いていますが、このロケールの問題により値が正しくありません。それぞれが XML 形式で単純な Excel ファイルを作成し、基になるデータは米国 (ドットとコンマ) 形式の alawys です。

ありがとう

4

1 に答える 1

3

これが問題です:

newData.Value = num

のタイプXElement.Valueはであるため、からへStringの「標準」変換を使用しています。これをオンにしてオンにすると、コンパイル時のエラーが発生する可能性があります。SingleStringOption StrictOption Explicit

通常のLINQtoXMLルールに従って値を設定するには、次のものが必要です。

newData.ReplaceAll(num)

または、テキスト値を追加するだけで子要素を保持するには、次のようにします。

newData.Add(num)

(正直に言うと、どこから来たのかは明確でnewDataはありません-あなたは示しましmyDataたが、そうではありませんnewData。)

于 2012-08-28T16:52:22.887 に答える