C#で小数点を別の文字に変更したいと思います。 double
変数value
があります
double value;
そして、私がコマンドを使用するとき:
Console.WriteLine(value.ToString()); // output is 1,25
私はこれができることを知っています:
Console.WriteLine(value.ToString(
CultureInfo.CreateSpecificCulture("en-GB"))); // output is 1.25
しかし、私はそれが非常に好きではありません。なぜならそれは非常に長く、私のプログラムで非常に頻繁に必要になるからです。
「小数点」を実際にポイントとして設定するための短いバージョンがあり、私の文化では通常のカンマではありませんか?
いくつかのショートカットは、NumberFormatInfoクラスを作成し、そのNumberDecimalSeparatorプロパティを「。」に設定することです。そして、必要なときはいつでもToString()メソッドのパラメーターとしてクラスを使用します。
using System.Globalization;
NumberFormatInfo nfi = new NumberFormatInfo();
nfi.NumberDecimalSeparator = ".";
value.ToString(nfi);
拡張メソッドを作成しますか?
Console.WriteLine(value.ToGBString());
// ...
public static class DoubleExtensions
{
public static string ToGBString(this double value)
{
return value.ToString(CultureInfo.GetCultureInfo("en-GB"));
}
}
おそらく、あなたの質問の意図を誤解しているので、間違っている場合は修正しますが、文化設定を一度グローバルに適用して、すべての書き込みステートメントをカスタマイズする心配はありませんか?
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB");
数値の表示に使用されるカルチャを変更することにより、小数点記号を変更できます。ただし、これにより、数値に関するその他すべてが変更されることに注意してください(グループ化区切り、グループ化サイズ、小数点以下の桁数など)。あなたの質問から、コンマを小数点記号として使用するカルチャにデフォルト設定しているように見えます。
カルチャを変更せずに小数点記号を変更するjustには、現在の NumberDecimalSeparator
プロパティを変更できますカルチャの NumberFormatInfo
。
_Thread.CurrentCulture.NumberFormat.NumberDecimalSeparator = ".";
_
これにより、スレッドの現在のカルチャが変更されます。これで、すべての出力が変更されます。つまり、数値を出力するたびにカルチャを変更することを心配せずに、value.ToString()
を使用して目的の形式を出力できます。
( 中立 カルチャの小数点記号を変更できないことに注意してください。)
Convert.ToString(value, CultureInfo.InvariantCulture);
Asp.Net Webアプリケーションがある場合は、web.config
Webアプリケーション全体で同じになるように
<system.web>
...
<globalization
requestEncoding="utf-8"
responseEncoding="utf-8"
culture="en-GB"
uiCulture="en-GB"
enableClientBasedCulture="false"/>
...
</system.web>