質問

C#を使用して、私は表示のみ小数点以下2桁、小数点をフォーマットしたいし、私はその小数を取り、別の小数にそれを差し引きます。私が最初にフォーマットする文字列にそれを回す、その後、小数に戻って、それを変換することなくこれを行うことができるようにしたいと思います。私はこれを指定することを忘れて申し訳ありませんが、私はちょうど最後の小数点以下を切り落とすたい、丸くする必要はありません。これを行う方法はありますか?

役に立ちましたか?

解決

あなたは小数点以下を四捨五入したくない場合は、

、あなたはDecimal.Truncateを使用することができます。残念ながら、それだけで小数点以下のすべてを切り捨てることができます。これを解決するには、あなたは、100を掛け切り捨てると、このように、100で割ることができます:

decimal d = ...;
d = Decimal.Truncate(d * 100) / 100;
あなたはそれを十分な回数を行っている場合は、

そして、あなたが拡張メソッドを作成することができます。

public static class DecimalExtensions
{
  public static decimal TruncateDecimal(this decimal @this, int places)
  {
    int multipler = (int)Math.Pow(10, places);
    return Decimal.Truncate(@this * multipler) / multipler;
  }
}

他のヒント

あなたは使用することができます:Math.Round(number,2);を小数点以下2桁数を四捨五入する。

例については、恐らくMath.roundするのこの特定のオーバーロードを参照してください。

あなたはそれをフォーマットする必要はありませんが、それを四捨五入します。恐らくMath.round機能を試してみてください。

恐らくMath.round のを見てみましょう

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top