価格テキストボックスがあり、元の文字列がすでに小数または整数であるかどうかに関係なく、小数が2の小数値を取得したいと考えています。例えば:
input = 12 --> output = 12.00
input = 12.1 --> output = 12.10
input = 12.123 --> output = 12.12
.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
状況によっては、間違ったテクニックを使うのは非常に悪いかもしれません!!
// 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"
この方法を使用するdecimal.ToString("N");
試す
Input.Text = Math.Round(z, # Places).ToString();