小数点以下2桁まで四捨五入する必要があります。したがって、1.401は1.40に丸めるが、Math.Round(value, 2)
は1.4に丸める。末尾のゼロを保持しないMath.Round
後続ゼロを強制するにはどうすればよいですか?
小数点以下2桁まで四捨五入する必要があります。したがって、1.401は1.40に丸めるが、Math.Round(value, 2)
は1.4に丸める。末尾のゼロを保持しないMath.Round
後続ゼロを強制するにはどうすればよいですか?
1.4
1.40
と同じです - あなただけ違っそれを表示したいです。 ToString
を呼び出すときに書式文字列を使用してください - value.ToString("0.00")
1.4 == 1.40
数字が表示されるのは、末尾に0が必要なときだけです。それを文字列にフォーマットします。
.ToString("N2");
のように末尾のゼロは、値の問題よりも、フォーマットの詳細ですので、末尾のゼロは単なるプレゼンテーションで
foo.ToString("0.00")
を使用しています。数学的には、1.40
と1.4
は同等です。小数点以下2桁とそれを提示する代わりに、書式設定
用途:
String.Format("{0:0.00}", 1.4);
or
yourNumber.ToString("0.00");
それは数(ダブル?)なので、それは末尾のゼロを持っていない - あなたはそれをテキストにするために持っている力末尾のゼロ。
これは古い質問ですが、誰かを助けるかもしれません!
私は、c#xmlクラスを使用してデータを生成し、xmlにシリアル化しています。値の1つはdoubleです。値に '7'を割り当てると、実際に '7.00'が必要なときに '7'にシリアル化されます。このラウンド最も簡単な方法は何をするだけだった。
foo = doubleValue + 0.00M
をそして、それは代わりに、これは戻ってそれを解析し、その後ToStringメソッドをやって、その後、良好であっただけで7思想の値7.00になります。
小数点以下を使用するかどうかに関係します。
内部ながらMath.Round()
も、メモリが
だからもし、すべての後続のゼロを削除するには、自動的原因にdoubleとして保存されていることを、ダブル、まだ事実上の末尾のゼロを維持する(Source Codeからそれが表示されます)テールゼロを必要とする場合は、文字列表示関数を使用して他の人が回答したときにフォーマットするか、小数点として元の値を渡すようにしてください(Decimal.Math.Round
は小数点のみを扱います)。結果をdoubleにキャストしないようにし、double変数に保存しないようにします。
同様に小数点があり、末尾のゼロを必要としない場合は、それをダブルにキャストします(入力をMath.Round
にキャストするか、その結果のどこかに限ります)それはダブルになっています)。
修正。私はそれを違ったものにしたい。ありがとう! – Blade3