c# - Calculation int to decimal fails -


im working on method calculating conversion rate, problem devide visitors orders , result (whole numbers 84) when divide other way around 0.0.

if devide orders visits calculator result looks this:

0,0118694362017804

however have display result percent should shorten result 00,00 somehow. annyways strange dosn't work both ways , im wondering what's problem?

controller method:

 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                                       v.date == o.date                                       select new gc_conversionratemodel(o.date, v.visitors / o.totalorders)).firstordefault());              });              return totalconversions;         } 

these object classes:

gavisitorsmodel:

public class gavisitorsmodel : igavisitorsmodel     {          public string date { get; set; }         public int visitors { get; set; }          public gavisitorsmodel(string _date, string _visitors)         {              date = _date;             visitors = _visitors;          }      } 

gcordersmodel:

 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;         }      } 

gc_conversionratemodel:

 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

you dividing int int, results in int - meaning lose of precision. want float/double division, cast variables that.

select new gc_conversionratemodel(o.date, (float)v.visitors / (float)o.totalorders)).firstordefault()); 

Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -