私の文字列を解析して二重にしたい。私の問題は、newTimeの結果は800ですが、結果は8,00でなければなりません。C#二重にする文字列を解析する方法
string time = "08:00";
double newTime = double.Parse(time.Replace(':', '.'));
私の文字列を解析して二重にしたい。私の問題は、newTimeの結果は800ですが、結果は8,00でなければなりません。C#二重にする文字列を解析する方法
string time = "08:00";
double newTime = double.Parse(time.Replace(':', '.'));
Double.Parse
の結果はDouble
、ない文字列です。 ToString
を使用して、ダブルから文字列を出力する必要があります。
Double.Parse
のオーバーロードを使用して、NumberStyles
パラメータを設定する必要があります。 Float
の値を使用すると、指数表記が可能になります。
string time = "08:00";
double newTime = double.Parse(time.Replace(':', '.'), CultureInfo.InvariantCulture);
あなたの問題は、カルチャがあなたの文字列に作成するものと異なる小数点記号を持つことです。
あなただけはそれをを行い、小数点区切りとして:
を扱いたい場合は、この
string time = "08:00";
double newTime = double.Parse(time.Replace(":", Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator));
newTimeはまだ8ですが、8,00が必要です –
@AH次に文字列が必要です。二重に表示されるのは小数点のみです –
にそれを変更することができます。
string time = "08:00";
// when parsing "time", decimal separator is ":"
double newTime = double.Parse(time,
new NumberFormatInfo() { NumberDecimalSeparator = ":" });
を魔法の定数とトリックを回避してくださいtime.Replace(':', '.')
の'.'
のようになります。 newTime
は8
で、8.00
(8 == 8.0 == 8.00 == 8.000...
以降)ではありません。
// F2 - format string ensures 2 digits after the decimal point
// Outcome: 8.00
Console.Write(newTime.ToString("F2"));
'8,00'は、私はあなたのコードを実行' 8'を取得し、有効なダブル – Liam
ではありません:あなたはにしたい場合をフォーマット小数点使用後
newTime
と数字を表します –あなたは何を達成しようとしていますか? HH:mm形式から時間数を計算しますか? – MadOX