C#で小数点以下2桁で二重に丸めますか?


回答:


479

これは機能します:

inputValue = Math.Round(inputValue, 2);

floatを切り捨てる回避策:float myTruncFloat = float.Parse(Math.Round(myFloat、2).ToString());
ピエロアルベルト

1
値が48.0000の場合。48.00にはなりません。double inputValue = 48.00; inputValue = Math.Round(inputValue、2); 48のみになります。warkaound?
user1926138

100
Math.Round(inputValue, 2, MidpointRounding.AwayFromZero)

4
これは実際に使用する必要があるものです。銀行などのほとんどの操作は、このメソッド(MidpointRounding.AwayFromZero)を使用して行われます。
MadBoy

41
銀行がダブルを使用することを示唆するのは恐ろしいことです。通貨に近似値を使用しないでください。
raggi

6
@raggiいくつかの(銀行)が恐れています...それは多くのことを説明します
SparK 2013

4
はい、これは映画「Office Space」が作られたものだと思います-誰も気付かないセントの端数を四捨五入します。丸めを任意に使用する場合に注意するのは良い点です。
atconway 2014

1
そして、昔のスーパーマンのオリジナル映画のプロットの一部として、かなり昔に。
ジェームズウェストゲート2017

25

あなたは使うべきです

inputvalue=Math.Round(inputValue, 2, MidpointRounding.AwayFromZero)

Math.Round

Math.Roundは、倍精度浮動小数点値を指定された小数桁に丸めます。

中点丸め

数学的な丸め方法が2つの数値の中間にある数値を処理する方法を指定します。

基本的に、上記の関数は入力値を受け取り、小数点以下2桁(または指定した数値)に丸めます。MidpointRounding.AwayFromZero数は、2つの他の中間である場合、それが向けて丸められ、ゼロから離れている最寄りの数。また、最も近い偶数に丸める別のオプションを使用することもできます


25

別の簡単な方法は、パラメーターを指定してToStringを使用することです。例:

float d = 54.9700F;    
string s = d.ToString("N2");
Console.WriteLine(s);

結果:

54.97

19

Math.Roundを使用する

value = Math.Round(48.485, 2);

私をそれに打ち負かします(ただし、そこにもセミコロンを追加します;))
Reed Copsey

1
ただし、MidpointRoundingには注意してください。「小数点以下の桁数の右側の値の最初の桁の値が5の場合、桁位置の桁は奇数の場合は切り上げられ、偶数の場合は変更されません」
Matthias

8

下から試すことができます。これには多くの方法があります。

1. 
 value=Math.Round(123.4567, 2, MidpointRounding.AwayFromZero) //"123.46"
2.
 inputvalue=Math.Round(123.4567, 2)  //"123.46"
3. 
 String.Format("{0:0.00}", 123.4567);      // "123.46"
4. 
string.Format("{0:F2}", 123.456789);     //123.46
string.Format("{0:F3}", 123.456789);     //123.457
string.Format("{0:F4}", 123.456789);     //123.4568

4番目のオプションを使用しました。F6を書くことは、6つのゼロを書くよりもうまく機能しました;-)
Maurice Klimek 2015年

2

補間された文字列を使用します。これにより、切り上げられた文字列が生成されます。

var strlen = 6;
$"{48.485:F2}"

出力

"48.49"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.