2012-03-02 14 views
0

doubleを書式設定することはできますか?2140.76〜214076のテキストは使用できませんが、代わりに2140.76にすることは可能ですか?小数点を含むdoubleを書式設定するC#

私が読んでいるテキストファイル全体が '。'を使用している数字であるため、10進数に '、'は使用できません。小数、10000、レコード、毎日、そう...

EDIT分離するために:私は、SQL文でこれらの値を入力する必要があり、彼らが必要とするので、

double natMB = 0; 
boolean check = double.TryParse(splitline[8], NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out natMB); 
if (check == false) 
{ 
    natMB = 0; 
} 
else 
{ 
    natMB = natMB * 1024; 
} 

double intMB = 0; 
boolean check2 = double.TryParse(splitline[9], NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out intMB); 
if (check2==false) 
{ 
    intMB=0; 
} 
else 
{ 
    intMB = intMB * 1024; 
} 

を0値が必要ですヌルではなく0として表示されます。ここで読ん

+0

をあなたには、いくつかの国では小数部のデフォルトのセパレータはカンマであることを、知っていますか、他の国でドット?これは、[Culture Settings]と呼ばれます。 – Kamil

+0

私は文化の設定について知らなかったが、今はやっている!私はまだここに学んでいます...: – Dashzapp

+0

番号、日付、時刻のフォーマットには注意が必要です。これらは、異なる言語のシステムでは異なる場合があります。たとえば、私の国では、分数区切り記号は "、"です。米国では、12時間の時間形式があります(このように表された時間帯で文字列を単純にソートすることはできません)。 – Kamil

答えて

1

ご質問は明確ではない、あなたが文字列からdoubleを解析しますかドットの小数点記号?

そうであればこれで試してみてください。

double.Parse("2140.76", CultureInfo.InvariantCulture) 
0

は、二重の書式を設定することが可能ですので、彼はテキストは2140.76 214076にではなく、それは2140.76なるチャンスをさせないのですか?

はい。私が無知な遊びをさせてください - 私はあなたがそれをどうやって尋ねることもできず、広範な書式設定方法を与えられた細孔栓を持たせることはできません。

私が読んでいるテキストファイル全体が数字の を使用しているため、10進数に '、'は使用できません。小数点を切り分けるために、毎日10000レコードを分けるために...

問題は、あなたが手元の文化問題と反対側の無知な開発者を起こしている可能性があります。無知なのは、exchagnedされたファイルは常に英語で書かれているので、それを避けるためです。

基本的には *スレッドの文化情報を英語または に変更する*解析とテキスト生成に英語の文化情報を使用してください。

使用する方法のドキュメントを読みます。書式を調整するためのドキュメントがあります。

+0

"exchagnedファイルは常に英語の形式にする必要があります"、uhmは 'InvariantCulture'フォーマットにするべきではありませんか? –

+0

InvariantCultureはい、しかしそれはほとんどが英語です...そして、あなたがexahgneのためのファイルを書いて誰かにそれがInvariantCultureであることを伝えれば、これは.NET固有の用語であるため空白に見えるかもしれません。だから、人々は.NETの用語を知っているとのファイル交換を想定することはできません;)英語を使うのが好きなので、脳がGoogleモードになるとJavaやC++のプログラマーは私に空白の表情を見せません) – TomTom

+1

私は共感できますしかし、あなたの推論では(おそらく、私は米国市民ではないので)、私はまだそれを見つけるのが難しいです。たとえば、 "英語"の文化が異なる(.NETかどうか)、 "不変"と "en-US"の間には[相違点](http://stackoverflow.com/a/2329317/21567)私はあなたが参照すると仮定します)文化。特に、24時間対12時間形式。一般的に私は、ファイル(インタフェース)内のあらゆる仮定を明示的にすることを学んできました。数字のフォーマットや、特に許可されている文字セットを含むが、これに限定されない(しかし、私は今OPの質問から逃げ出す;-) –

1

あなたは関係なく、あなたの地元の文化の設定の、小数点以下の期間と数をフォーマットするために、インバリアントカルチャを使用することができます。

string formatted = someDouble.ToString(CultureInfo.InvariantCulture); 
関連する問題