0

私はこの番号を持っています: 1234.5678 (テキストとして)

この数値は、ドットの後に 2 つの数値のみを使用して、2 倍にする必要があります。

しかし、数を四捨五入せずに

1234.5678 で - 私は 1234.57 を取得します

12.899999で-12.90を取得します

どうすればできますか?

4

7 に答える 7

5

次のように、必要なものを取得できるはずです。

number.ToString("#0.00")
于 2009-05-29T22:29:11.857 に答える
3

100 を掛け、数値の floor() を取り、もう一度 100 で割ります。

于 2009-05-29T22:27:25.857 に答える
3

必要な結果を投稿していませんが、 1234.56と 12.89 が表示されるように、切り捨てが必要だと思います。試す:

decimal d = 1234.89999M;
Console.WriteLine(Math.Truncate(d * 100) / 100);
于 2009-05-29T23:54:30.767 に答える
1

これは、これらの数値を double として正確に表すことができないためです。変換、丸め、テキストとして再印刷すると、精度が失われます。

代わりに「小数」を使用してください。

于 2009-05-29T22:27:32.190 に答える
1

この浮動小数点演算を考えてみましょう!

var num = "1234.5678";
var ans = String.Empty;
if( !String.IsNullOrEmpty(num) && num.Contains('.') ) // per comment
{
  ans = num.Substring(0, num.IndexOf('.') + 3);
}
于 2009-05-29T23:00:45.040 に答える
1

これでうまくいくはずです。

string rawVal = "1234.5678";
System.Math.Floor((double.parse(rawVal)) * 100) / 100;
于 2009-05-30T00:00:29.803 に答える
-1

これはうまくいきませんか?

        double d = 1234.5678;
        double rounded =Math.Round(d, 2);
于 2009-05-29T22:30:53.803 に答える