0

以下のVB.netにコードがあります:

me.Index = Format(Convert.ToDouble(g.Trim()), "##.##")

結果 : 120.00

C#で同じことをするにはどうすればよいですか。C# では format 関数を使用しません。結果がポイントの後に2つ以上の値を配置しないようにしたいだけです。つまり、値 120.120000 を送信すると、結果は 12.12 になります

4

3 に答える 3

3

「C# では format 関数を使用しない」という意味が明確ではありませんが、もちろん使用できますstring.Format。ただし、使用double.ToStringする方がおそらく簡単です。

Index = Convert.ToDouble(g.Trim()).ToString("0.##");

(先頭の数字が常に存在するように先頭##をに変更したので、たとえば ".5" が表示されません。先頭の数字を本当にオプションにしたい場合は、それを に変更してください。私はしませんただし、接頭辞として使用する利点があります。)0"#.##"##

でも:

  • これは、現在のカルチャの小数点記号を使用します。それはあなたが望むものですか、それともいつも使いたい.ですか?
  • 数値の 10 進数表現が重要な場合は、まったく使用したくない場合がありますdouble。を使用すべきではありませんdecimalか?
于 2012-11-05T06:50:56.740 に答える
0

You can do it like this,

decimal.Round(yourValue, 2, MidpointRounding.AwayFromZero);
于 2012-11-05T06:55:58.947 に答える