方程式-数学.四舍五入和双倍

本文关键字:四舍五入 数学 方程式 | 更新日期: 2023-09-27 17:58:20

我正在研究一个转化率方程。我目前的问题是我不确定我是否得到了正确的结果。

在创建GC_ConversionRateModel时的Linq查询中,我将TotalOrdersVisitors分开以获得转换。为了在谷歌图表中获得流畅的结果,我必须使用4位小数,将结果乘以100,最后用2位小数显示结果。(不是十进制数据类型)。

这样做好吗?

OrdersList.ForEach(o =>
        {
            TotalConversions.Add((from v in VisitorsList
                                  where v.Date == o.Date
                                  select new GC_ConversionRateModel(o.Date, (double)o.TotalOrders / (double)v.Visitors)).FirstOrDefault());
        });

        foreach (var conv in TotalConversions)
        {
            conv.ConversionRate = Math.Round(conv.ConversionRate, 4); // -- Round to 4 decimals
            conv.ConversionRate = conv.ConversionRate * 100; //-- Multiply with 100
            conv.ConversionRate = Math.Round(conv.ConversionRate, 2, MidpointRounding.ToEven); //-- Round to 2 decimals

        }
     return TotalConversions;

Thx

方程式-数学.四舍五入和双倍

由于第一条舍入线,代码的第二条舍入线从未做过任何有用的事情:一旦你四舍五入到小数点后四位,数字将如下所示:

##.####00000

当你乘以100时,小数点会向右移动两位,所以数字看起来是这样的:

####.##00000

请注意,该数字正好有两个十进制数字,因此的调用

conv.ConversionRate = Math.Round(conv.ConversionRate, 2, MidpointRounding.ToEven);

没有效果。

您可以安全地将三条转换线替换为一条:

conv.ConversionRate = Math.Round(100*conv.ConversionRate, 2, MidpointRounding.ToEven);