Issue #13104 has been updated by Marcus Stollsteimer.


Seems to be triggered by `ext/mathn/rational/rational.c` and `ext/mathn/complex/complex.c`, which activate "canonicalization" in `rational.c` and `complex.c`.

```
$ ruby -r mathn/rational -e 'p Rational(2/1)'
2
$ ruby -r mathn/complex -e 'p Complex("3+0i")'
3
```

I suppose the reasoning behind the behavior was that in mathematics generally the simplest representation of a number is used, and n/1 = n.

But what are the plans for `mathn` anyway? -- It seems to be deprecated since 2.2 (#10169).

----------------------------------------
Bug #13104: mathn.rb affects Rational literals
https://bugs.ruby-lang.org/issues/13104#change-63152

* Author: Nobuyoshi Nakada
* Status: Assigned
* Priority: Normal
* Assignee: Yukihiro Matsumoto
* Target version: 2.5
* ruby -v: r57270
* Backport: 2.2: REQUIRED, 2.3: REQUIRED, 2.4: REQUIRED
----------------------------------------
Without mathn:

```
$ ruby -e 'p 1.0r'
(1/1)
```

With mathn:

```
$ ruby -rmathn -e 'p 1.0r'
1
```

Is this intentional?

https://github.com/ruby/ruby/compare/trunk...nobu:bug/rational-literal-mathn




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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>