0

datatableからの値を丸めたいだけです。DataはSQLからdatableになります。また、datatableにはnull値があります。これは問題だと思いますが、チェックしてください。

string Maxmonthlytable = Math.Round((decimal)monthlytable.Rows[u][3], 2, MidpointRounding.AwayFromZero).ToString();

「数値からキャストする場合、値は無限大未満の数値でなければなりません」というエラーが表示されます。

4

3 に答える 3

2

nullablesDataRow.Fieldをサポートするメソッドを使用できます:

decimal? num = monthlytable.Rows[u].Field<decimal?>(3);
Console.Write(num.HasValue 
                 ? Math.Round(num.Value, MidpointRounding.AwayFromZero)
                 : "no value");
于 2012-10-23T07:43:58.457 に答える
0

あなたは試すことができます:

decimal num = 0;
if (monthlytable.Rows[u][3] != DBNull.Value)
    num = Math.Round((decimal)monthlytable.Rows[u][3], 2, MidpointRounding.AwayFromZero)
string Maxmonthlytable = num.ToString();
于 2012-10-23T07:29:20.100 に答える
-1

キャストを使用したり、キャストを使用したりする代わりに、キャスト(decimal)またはを使用する(int)必要があります。これにより、この問題は解消されます。(System.Decimal)(System.Int32)

于 2013-04-08T23:04:36.270 に答える