double improperly rounding to 2 decimal places

I'm observing some weird behaviors with doubles and i'm trying to deal with some precise numbers in my code and it's throwing me off.

If I run the following lines in the setup() function...

double a = 177.51479;
  Serial.println(a);

... I get 177.51 as the result.

If I run ...

double a = 169/60;
  Serial.println(a);

... I get 2.00! It doesn't even properly round that to 2.82.

Any idea as to what the issue is?
Thanks in advance.

Google "integer math"

You are dividing one integer by another so the result is an integer. You will get different results for
169.0 / 60.0

That did the trick. Thanks so much for your guidance.

Regarding printing of floating point numbers:

If you pass a number as the second argument when printing a floating point value, that will be how many decimal points you get. Keep in mind that 32-bit floats are only accurate to like 5 decimal places, and both float and double are the same in arduino - 32-bit floating point.

Indeed try

double a = 177.51479;
Serial.println(a,5);// print à with 5 decimal. If 5 is omitted 2 is the default

and the other one is compiler’s default behavior, it takes the smallest numerical container (starting with int) that can represent your data and use that type to perform the computation, promoting the other literals to the larger container required as the computation goes. So if you have an int divided by an int then you do math with int (and loosing decimal part), if you have at least one float and an int then the math is done in float so try

double a = 169.0 / 60; // or 169/60.0 or 169.0/60.0 or ((float) 169) / 60 ..
Serial.println(a,5);// print à with 5 decimal. If 5 is omitted 2 is the default

will lead to a better result