3

価格テキストボックスがあり、元の文字列がすでに小数または整数であるかどうかに関係なく、小数が2の小数値を取得したいと考えています。例えば:

input = 12 --> output = 12.00
input = 12.1 --> output = 12.10
input = 12.123 --> output = 12.12
4

4 に答える 4

5

.ToString()文字列をフォーマットとして受け取るオーバーロードを使用できます。

var roundedInput = input.ToString("0.00");

もちろん、これは文字列型になります。

単純に丸めるには、次を使用できますMath.Round

var roundedInput = Math.Round(input, 2);

デフォルトでは、「バンカーの丸め」方式が使用されていることに注意してMath.Roundください。これは望ましくない場合があります。その場合、丸め型列挙型をとるオーバーロードを使用する必要があるかもしれません。

var roundedInput = Math.Round(input, 2, MidpointRounding.AwayFromZero);

MidpointRoundingここ で使用するメソッドオーバーロードのドキュメントを参照してください:http: //msdn.microsoft.com/en-us/library/ms131275.aspx

Math.Roundまた、のデフォルトの丸め方法は、で使用されているデフォルトの丸め方法とは異なることに注意してdecimal.ToString()ください。例えば:

(12.125m).ToString("N");  // "12.13"
(12.135m).ToString("N");  // "12.14"
Math.Round(12.125m, 2);   // 12.12
Math.Round(12.135m, 2);   // 12.14

状況によっては、間違ったテクニックを使うのは非常に悪いかもしれません!!

于 2012-08-13T10:58:26.450 に答える
3
// just two decimal places
String.Format("{0:0.00}", 123.4567);      // "123.46"
String.Format("{0:0.00}", 123.4);         // "123.40"
String.Format("{0:0.00}", 123.0);         // "123.00"
于 2012-08-13T10:58:41.627 に答える
3

この方法を使用するdecimal.ToString("N");

于 2012-08-13T10:58:57.353 に答える
0

試す

Input.Text = Math.Round(z, # Places).ToString();
于 2012-08-13T11:01:03.497 に答える