public static string Dec2Frac(double dbl) { char neg = ' '; double dblDecimal = dbl; if (dblDecimal == (int)dblDecimal) return dblDecimal.ToString(); //return no if it's not a decimal if (dblDecimal < 0) { dblDecimal = Math.Abs(dblDecimal); neg = '-'; } var whole = (int)Math.Truncate(dblDecimal); string decpart = dblDecimal.ToString().Replace(Math.Truncate(dblDecimal) + ".", ""); double rN = Convert.ToDouble(decpart); double rD = Math.Pow(10, decpart.Length); string rd = Recur(decpart); int rel = Convert.ToInt32(rd); if (rel != 0) { rN = rel; rD = (int)Math.Pow(10, rd.Length) - 1; } //just a few prime factors for testing purposes var primes = new[] { 47, 43, 37, 31, 29, 23, 19, 17, 13, 11, 7, 5, 3, 2 }; foreach (int i in primes) ReduceNo(i, ref rD, ref rN); rN = rN + (whole * rD); return string.Format("{0}{1}/{2}", neg, rN, rD); }
private bool EnableGroupByPresentationUniqueKey(InternalItemsQuery query) { if (!query.GroupByPresentationUniqueKey) { return false; } if (!string.IsNullOrWhiteSpace(query.PresentationUniqueKey)) { return false; } if (query.User == null) { return false; } if (query.IncludeItemTypes.Length == 0) { return true; } var types = new[] { typeof(Episode).Name, typeof(Video).Name , typeof(Movie).Name , typeof(MusicVideo).Name , typeof(Series).Name , typeof(Season).Name }; if (types.Any(i => query.IncludeItemTypes.Contains(i, StringComparer.OrdinalIgnoreCase))) { return true; } return false; }