web-dev-qa-db-ja.com

VisualBasicハンドルの小数点カンマ

変数をテキストファイルに保存しようとしていますが、チェコ語の活版印刷のルールに夢中になっています。私がチューニングしているプログラムは、10進数のコンマが使用されているチェコのローカライズされたコンピューターでの作業専用ですが、VBは通常の標準の小数点で動作しています。

ファイルをロードすると、「US」の小数が正しくロードされ、チェコの小数として表示されます。 TextBoxesでは、「チェコ語」の小数が必要です。私の問題は、プログラムがチェコの小数を生成し、「米国」の小数を必要とすることです。

VBプログラムに、区切り文字ではなく小数点としてコンマを読み取るように強制する方法、またはコンマではなくドットを使用してデータをエクスポートする方法を教えてください。

はい、123,456a=123およびb=456としてロードし、値をa + b/1000として返すことができますが、より洗練された解決策はありますか?

13
Crowley

Val関数の使用が原因である可能性があります。それは国際的ではありません。ヘルプテキストでは、文字列から数値に変換するときにCDblを使用することを推奨しています。

7
Brian Hooper

適切な機能を選択してください。

  • ValStrは常に米国の設定を使用します(10進数としてドット)
  • CDblFormatは地域の設定を考慮します。

それはすべてマニュアルにあります 国際プログラミングのセクション

13
MarkJ

試してみてください

Format $(CDbl(Text1.Text)、 "#、## 0.00")

0
Waruna Manjula

アドバイスをありがとうございます。何か間違っているかどうかはわかりませんが、エラー(タイプの不一致)または「チェコ語」の小数点コンマしか取得できません。

私は試しました '平手打ちをしましたか?彼をもっと強く叩きなさい!」このコードによるアプローチ:

Dim PpP As String, SaveFile As Integer

PpP = Form1.TxtA10.Text & " " & Form1.TxtA11.Text
PpP = Replace(PpP, ",", ".")
Print #SaveFile, PpP

編集:

somethingは、入力ではなく出力でこれらの関数を試すことを意味します。 (文字列パラメーターとしてDoubleを試すような)。

このコード:

Input #1,TempString
Form1.TxtA10.Text = CDbl(TempString)

同様に動作します。

0
Crowley