ToDouble() public méthode

Get the value of the Fraction object as double with full support for NaNs and infinities
public ToDouble ( ) : double
Résultat double
Exemple #1
0
        private static List<Ingredient> ExtractIngredients(HtmlNode ingredientsNode)
        {
            List<Ingredient> ingredients = new List<Ingredient>();

            string[] ingredientLines = ingredientsNode.InnerHtml.Split(new string[] { "<br>" }, StringSplitOptions.RemoveEmptyEntries);

            foreach (string ingredientLine in ingredientLines)
            {
                string ingredientName = ingredientLine;
                Fraction incredientAmountFraction = Fraction.Zero;
                double incredientWeight = 1;
                string[] ingredientParsed = null;

                string measureUnit = GetMeasureUnit(ingredientLine);

                if (measureUnit != null)
                {
                    ingredientParsed = ingredientLine.Split(new string[] { measureUnit }, StringSplitOptions.RemoveEmptyEntries);
                }
                else
                {
                    ingredientParsed = ingredientLine.Split(null as string[], 2, StringSplitOptions.RemoveEmptyEntries);
                }

                try
                {
                    if (ingredientParsed.Length == 1)
                    {
                        incredientAmountFraction = new Fraction(1);
                        ingredientName = ingredientParsed[0].Trim(' ', '-');
                    }
                    else
                    {
                        string incredientAmount = ingredientParsed[0]
                            .Trim(' ', '-')
                            .Replace("חצי", "1/2").Replace("½", "1/2")
                            .Replace("שליש", "1/3")
                            .Replace("רבע", "1/4");
                        incredientAmountFraction = new Fraction(incredientAmount);
                        ingredientName = ingredientParsed[1].Trim(' ', '-');
                        if (measureUnit != null)
                        {
                            incredientWeight = incredientAmountFraction.ToDouble() * IncredientAmount.MEASURE_UNITS[measureUnit];
                        }
                    }
                }
                catch (Exception e) 
                { 
                    log.WarnFormat("Failed to parse ingredient: {0} {1}", ingredientLine, e);
                }

                ProductBasicData product = FindProductByName(ingredientName);
                string productId = null, productName = null;
                NutritionFacts nutFacts = new NutritionFacts();
                if (product != null)
                {
                    productId = product.ProductId;
                    productName = product.ProductName;
                    if (product.ExtendedData != null && product.ExtendedData.NutritionTable != null)
                    {
                        nutFacts = new NutritionFacts(product.ExtendedData.NutritionTable);
                    }
                }
                Ingredient ingredient = new Ingredient()
                {
                    Name = ingredientName,
                    ProductId = productId,
                    ProductName = productName,
                    NutritionFacts = nutFacts,
                    Amount = new IncredientAmount()
                    {
                        MeasureUnit = measureUnit,
                        Amount = incredientAmountFraction,
                        Weight = incredientWeight
                    }
                };
                ingredients.Add(ingredient);
            }

            return ingredients;
        }