C#で最も近い10分の1の位置に丸める方法を理解しようとしています。たとえば、double型の値があります。このdoubleは現在10.75に設定されています。ただし、10分の1の位置を超えてすべてを丸めてから切り捨てる必要があります。この場合、私は10.8の値を求めています。 C#で10分の1の位置に丸めるにはどうすればよいですか?
ありがとうございました!
Math.Round(yourNumber, 1)
2番目のパラメーターは、四捨五入する小数点以下の桁数です。あなたの場合、最終結果として小数点以下1桁が必要です。
decimals
パラメータを取る Math.Round
のオーバーロードを使用する必要があります。
Math.Round(10.75, 1) // returns 10.8
比較のために:
Math.Round(10.75) // returns 11
Math.Round(10.75, 0) // returns 11
Math.Round(10.75, 2) // returns 10.75
タイトルにMath.Round()
を使用したので、基本的なMath.Round(10.75,1)
アプローチをすでに試したと仮定しますが、予期しないものが返されます。そのことを念頭に置いて、関数のさまざまなオーバーロードのいくつか、特にMidPointRounding
列挙型を受け入れるものを検討することをお勧めします。
本当に丸める必要がありますか、それとも印刷用にフォーマットするだけで、変数自体がその精度を保持できるようにすることができますか?何かのようなもの:
decimal value = 10.75;
value.ToString ("#.#");
最初の小数以降のすべてを「カット」したいだけの場合、これは機能するはずです。
return Math.Round(value * 10)/10