# (HackerRank Day 2: Operators) Problem with Constructor

#### Tags: c++, java

In this HackerRank challenge, I need to find the total meal cost by adding tip_percent which is 20% of the meal_cost and tax_percent which is 8% of the meal_cost and the meal_cost being \$12. So the output must be a round number of 15 but my output comes out as \$14.

It does seem to work properly with custom values like \$12.50 for meal_cost which later totaled comes out as a rounded value of \$16. What am I doing wrong here?

```static double findMealTotal(double meal_cost, int tip_percent, int tax_percent) {

tip_percent = (int)(meal_cost * tip_percent)/100;
tax_percent = (int)(meal_cost * tax_percent)/100;
return meal_cost + tip_percent + tax_percent;
}

private static final Scanner scanner = new Scanner(System.in);

public static void main(String[] args) {
double meal_cost = scanner.nextDouble();
int tip_percent = scanner.nextInt();
int tax_percent = scanner.nextInt();

//changed solve to mealTotal
double mealTotal = findMealTotal(meal_cost, tip_percent, tax_percent);

System.out.println(Math.round(mealTotal));

scanner.close();
}
```

You are using integers. Integers are rounded, so you loose precision over the next calculation. Try using doubles and cast to int at the end.

```    static void Main(string[] args)
{
double cost = findMealTotal(12, 20, 8);
Console.WriteLine(cost.ToString());
}

static double findMealTotal(double meal_cost, int tip_percent, int tax_percent)
{
double tip = meal_cost * tip_percent / 100;
double tax = meal_cost * tax_percent / 100;
return meal_cost + tip + tax;
}
```