Ahmed Ahmed - 5 months ago 13

Ruby Question

In Ruby,

`Math.acos(10/70) * 57.2958`

should return approximately 80 degrees (according to my calculator).

However it is returning approximately 90 degrees. Why is that?

Answer

You need to add decimal points, or Ruby will assume integer division:

```
irb(main):006:0> Math.acos(10/70) / Math::PI * 180
=> 90.0
irb(main):007:0> Math.acos(10.0/70) / Math::PI * 180
=> 81.78678929826181
```

If you just use `10/70`

, this will round to 0, and you get `Math.acos(0)`

instead of `Math.acos(0.14..)`

which is what you want.

Source (Stackoverflow)

Comments