Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 整数到小数的计算失败_C#_Asp.net Mvc_Linq_Type Conversion_Equation Solving - Fatal编程技术网

C# 整数到小数的计算失败

C# 整数到小数的计算失败,c#,asp.net-mvc,linq,type-conversion,equation-solving,C#,Asp.net Mvc,Linq,Type Conversion,Equation Solving,我正在研究一种计算转换率的方法,问题是我给访问者下订单,然后得到一个结果(像84这样的整数),但当我用另一种方法除以时,我得到了0.0 如果我使用计算器对订单进行访问,结果如下所示: 00118694362017804 但是,我必须以百分比的形式显示结果,因此我应该以某种方式将结果缩短为00,00。奇怪的是,它不是双向的,我想知道是什么问题 控制器方法: public List<GC_ConversionRateModel> GetConversionReport(GAStatis

我正在研究一种计算转换率的方法,问题是我给访问者下订单,然后得到一个结果(像84这样的整数),但当我用另一种方法除以时,我得到了0.0

如果我使用计算器对订单进行访问,结果如下所示:

00118694362017804

但是,我必须以百分比的形式显示结果,因此我应该以某种方式将结果缩短为00,00。奇怪的是,它不是双向的,我想知道是什么问题

控制器方法:

 public List<GC_ConversionRateModel> GetConversionReport(GAStatisticsListModel model)
        {

            DateTime? startDateValue = (model.StartDate == null) ? null
                            : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.StartDate.Value, _dateTimeHelper.CurrentTimeZone);

            DateTime? endDateValue = (model.EndDate == null) ? null
                            : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.EndDate.Value, _dateTimeHelper.CurrentTimeZone).AddDays(1);




            List<GAVisitorsModel> VisitorsList = GetGAStatisticsReport(model);
            List<GC_OrdersModel> OrdersList = GetOrderReport(model);
            List<GC_ConversionRateModel> TotalConversions = new List<GC_ConversionRateModel>();

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

            });

            return TotalConversions;
        }
public class GAVisitorsModel : IGAVisitorsModel
    {

        public string Date { get; set; }
        public int Visitors { get; set; }

        public GAVisitorsModel(string _date, string _visitors)
        {

            Date = _date;
            Visitors = _visitors;

        }

    }
 public class GC_OrdersModel
    {

        public string Date { get; set; }
        public int TotalOrders { get; set; }
        public int TotalProducts {get; set;}



        public GC_OrdersModel(string _date, int _totalOrders, int _totalProducts)
        {
            Date = _date;
            TotalOrders = _totalOrders;
            TotalProducts = _totalProducts;
        }

    }
 public class GC_ConversionRateModel
    {

        public string Date { get; set; }
        public decimal ConversionRate { get; set; }



        public GC_ConversionRateModel(string _date, decimal _conversionRate)
        {
            Date = _date;
            ConversionRate = _conversionRate;

        }

    }
GCOrdersModel:

 public List<GC_ConversionRateModel> GetConversionReport(GAStatisticsListModel model)
        {

            DateTime? startDateValue = (model.StartDate == null) ? null
                            : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.StartDate.Value, _dateTimeHelper.CurrentTimeZone);

            DateTime? endDateValue = (model.EndDate == null) ? null
                            : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.EndDate.Value, _dateTimeHelper.CurrentTimeZone).AddDays(1);




            List<GAVisitorsModel> VisitorsList = GetGAStatisticsReport(model);
            List<GC_OrdersModel> OrdersList = GetOrderReport(model);
            List<GC_ConversionRateModel> TotalConversions = new List<GC_ConversionRateModel>();

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

            });

            return TotalConversions;
        }
public class GAVisitorsModel : IGAVisitorsModel
    {

        public string Date { get; set; }
        public int Visitors { get; set; }

        public GAVisitorsModel(string _date, string _visitors)
        {

            Date = _date;
            Visitors = _visitors;

        }

    }
 public class GC_OrdersModel
    {

        public string Date { get; set; }
        public int TotalOrders { get; set; }
        public int TotalProducts {get; set;}



        public GC_OrdersModel(string _date, int _totalOrders, int _totalProducts)
        {
            Date = _date;
            TotalOrders = _totalOrders;
            TotalProducts = _totalProducts;
        }

    }
 public class GC_ConversionRateModel
    {

        public string Date { get; set; }
        public decimal ConversionRate { get; set; }



        public GC_ConversionRateModel(string _date, decimal _conversionRate)
        {
            Date = _date;
            ConversionRate = _conversionRate;

        }

    }
GC\U转换率模型:

 public List<GC_ConversionRateModel> GetConversionReport(GAStatisticsListModel model)
        {

            DateTime? startDateValue = (model.StartDate == null) ? null
                            : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.StartDate.Value, _dateTimeHelper.CurrentTimeZone);

            DateTime? endDateValue = (model.EndDate == null) ? null
                            : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.EndDate.Value, _dateTimeHelper.CurrentTimeZone).AddDays(1);




            List<GAVisitorsModel> VisitorsList = GetGAStatisticsReport(model);
            List<GC_OrdersModel> OrdersList = GetOrderReport(model);
            List<GC_ConversionRateModel> TotalConversions = new List<GC_ConversionRateModel>();

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

            });

            return TotalConversions;
        }
public class GAVisitorsModel : IGAVisitorsModel
    {

        public string Date { get; set; }
        public int Visitors { get; set; }

        public GAVisitorsModel(string _date, string _visitors)
        {

            Date = _date;
            Visitors = _visitors;

        }

    }
 public class GC_OrdersModel
    {

        public string Date { get; set; }
        public int TotalOrders { get; set; }
        public int TotalProducts {get; set;}



        public GC_OrdersModel(string _date, int _totalOrders, int _totalProducts)
        {
            Date = _date;
            TotalOrders = _totalOrders;
            TotalProducts = _totalProducts;
        }

    }
 public class GC_ConversionRateModel
    {

        public string Date { get; set; }
        public decimal ConversionRate { get; set; }



        public GC_ConversionRateModel(string _date, decimal _conversionRate)
        {
            Date = _date;
            ConversionRate = _conversionRate;

        }

    }

Thx

您正在将一个int除以一个int,这将导致一个int-这意味着您确实失去了大部分精度。您想进行浮点/双除法运算,所以将变量转换为浮点/双除法

select new GC_ConversionRateModel(o.Date, (float)v.Visitors / (float)o.TotalOrders)).FirstOrDefault());

你将一个整数除以一个整数,这将导致一个整数-这意味着你会失去大部分精度。您想进行浮点/双除法运算,所以将变量转换为浮点/双除法

select new GC_ConversionRateModel(o.Date, (float)v.Visitors / (float)o.TotalOrders)).FirstOrDefault());

如果将
int
除以
int
,结果将是
int

试一试


如果将
int
除以
int
,结果将是
int

试一试

您的问题是,操作的结果是一个
整数
,因此值被截断

例如:

7/2 = 2; //7 is integer devided on integer 2 == integer 2;
但如果您编写,其中至少有一个是
decimal
,编译器将推断结果为
decimal

7/2.0 = 2; //7 is integer devided on decimal 2 == decmal 2.333;
因此,在您的具体案例中,您可能会喜欢:

var decimalResult = visitors_count/(decimal)oders_count;
您的问题是,操作的结果是一个
整数
,因此值被截断

例如:

7/2 = 2; //7 is integer devided on integer 2 == integer 2;
但如果您编写,其中至少有一个是
decimal
,编译器将推断结果为
decimal

7/2.0 = 2; //7 is integer devided on decimal 2 == decmal 2.333;
因此,在您的具体案例中,您可能会喜欢:

var decimalResult = visitors_count/(decimal)oders_count;

一次又一次地问同一个问题…可能重复或相同的问题一次又一次…可能重复或