1

このオブジェクトを JSON として返すと、次のようになります。

0.000000000000000e+000

C# での私のコードは次のとおりです。

// get adjustments for user
IEnumerable<Severity> existingSeverities = 
    from s in db.AdjusterPricingGrossLossSeverities
    where s.type == type
    && s.adjusterID == adj.id
    select new Severity
    {
        id = s.severity,
        adjustment = Math.Round((double)s.adjustment, 2, MidpointRounding.AwayFromZero).ToString(),
        isT_E = (bool)s.isTimeAndExpense
    };

小数点以下 2 桁 (0.00) に丸めるにはどうすればよいですか?

4

4 に答える 4

3

使用する;

dec.ToString("#.##");

詳細については、この回答を参照してください

Consoleアプリで null 可能な double の場合は、次のようにします。

    double ? d = 2.22222;
    Console.WriteLine(d.Value.ToString("#.##"));
于 2013-06-14T13:24:55.000 に答える
0

これを試して:

// get adjustments for user
IEnumerable<Severity> existingSeverities = 
from s in db.AdjusterPricingGrossLossSeverities
where s.type == type
&& s.adjusterID == adj.id
select new Severity
{
    id = s.severity,
    adjustment = s.adjustment.GetValueOrDefault().ToString("0.##"),
    isT_E = (bool)s.isTimeAndExpense
 };

-編集-

次のように、Severity クラスに double を取り、文字列を Severity.adjustment に保存するプロパティを持たせる必要があると思います。

 Severity
 {
      //rest of class as normal

      public double SetAdjustment
           {
                set { adjustment = value.ToString("0.00"); } }
           }
 }

-編集、その2-

// get adjustments for user
IEnumerable<Severity> existingSeverities = 
from s in db.AdjusterPricingGrossLossSeverities
where s.type == type
&& s.adjusterID == adj.id
select new Severity
{
    id = s.severity,
    SetAdjustment = s.adjustment.GetValueOrDefault(),
    isT_E = (bool)s.isTimeAndExpense
 };

コードの残りの部分を変更する必要はありません。通常どおり (Severity variable).adjustment を使用する必要があります。これは、.Net の標準数値書式文字列を SQL のConvertに変換する方法が保証されていないという事実を回避するためのものであり、カスタム書式設定はなおさらです。

于 2013-06-14T13:35:49.973 に答える
0

結局のところ、これは LINQ to SQL の問題でした。私はこれをしました、そしてそれは動作します...

// get adjustments for user
IEnumerable<Severity> existingSeverities = 
    from s in db.AdjusterPricingGrossLossSeverities
    where s.type == type
    && s.adjusterID == adj.id
    select new Severity
    {
        id = s.severity,
        adjustment = roundtest(s.adjustment.GetValueOrDefault()),
        isT_E = (bool)s.isTimeAndExpense
    };

// test method...
public string roundtest(double num)
{
    return num.ToString("#.##");
}
于 2013-06-14T13:44:17.830 に答える