Issue #10429 has been updated by Shyouhei Urabe.


Matt Dressel wrote:
> What do I need to do to get someone to look at this?

You would better show us your expectation.  You are just saying something is strange.  If you think it's wrong instead of just being strange, tell us how you think it should behave.

----------------------------------------
Bug #10429: Ruby 2.x exponents produce wildly varying precision for integers vs decimals
https://bugs.ruby-lang.org/issues/10429#change-49993

* Author: Matt Dressel
* Status: Open
* Priority: Normal
* Assignee: 
* Category: core
* Target version: 
* ruby -v: 2.0.0-p576, 2.1.3
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
## 2.0.0
```
> 1.1.to_d ** -1.9999999
 => #<BigDecimal:7fdcc1fcdfa0,'0.8264462888 68609939E0',18(45)> 
> 1.1.to_d ** -2
 => #<BigDecimal:7fdccd3e8d00,'0.8264462809 9173553719 0082644628 0991735537 1900826446 2809917355 3719008264 46E0',72(72)> 
> 1.1.to_d ** -2.0
 => #<BigDecimal:7fdccd3e8d00,'0.8264462809 9173553719 0082644628 0991735537 1900826446 2809917355 3719008264 46E0',72(72)> 
> 1.1.to_d ** -2.0000001
 => #<BigDecimal:7fdcc1f702d8,'0.8264462731 14861211E0',18(45)>
```

## 2.1.3
```
> 1.1.to_d ** -1.9999999
=> #<BigDecimal:7ff690a7d6c0,'0.8264462888 68609938E0',18(36)>
> 1.1.to_d ** -2
=> #<BigDecimal:7ff690ace0c0,'0.8264462809 9173553719 0082644628 0991735537 1900826446 2809917355 371E0',63(63)>
> 1.1.to_d ** -2.0
=> #<BigDecimal:7ff690ace0c0,'0.8264462809 9173553719 0082644628 0991735537 1900826446 2809917355 371E0',63(63)>
> 1.1.to_d ** -2.0000001
=> #<BigDecimal:7ff674c0b0a8,'0.8264462731 1486121E0',18(36)>
```

Additionally, when the integer value increases, the precision increases:

## 2.0.0
```
> 1.1.to_d ** 2
 => #<BigDecimal:7fb0969fb7f0,'0.121E1',18(72)> 
> 1.1.to_d ** 3
 => #<BigDecimal:7fb096928468,'0.1331E1',18(90)> 
> 1.1.to_d ** 4
 => #<BigDecimal:7fb096a05890,'0.14641E1',18(117)> 
> 1.1.to_d ** 5
 => #<BigDecimal:7fb096a0fbb0,'0.161051E1',18(135)> 
> 1.1.to_d ** 6
 => #<BigDecimal:7fb096a1e110,'0.1771561E1',18(153)> 
```





-- 
https://bugs.ruby-lang.org/