Issue #13693 has been updated by duerst (Martin Drst).

Status changed from Open to Rejected

We quickly discussed this issue at today's Ruby committer's meeting.

For everybody, converting exponential (scientific) notation to integer looked strange. Exponential notation is usually used to express very large numbers or very small numbers that don't fit integer.

We also wondered whether you have an actual use case. Consistency is important, but we don't add something just for 'consistency's sake.

----------------------------------------
Feature #13693: Allow String#to_i and / or Kernel::Integer to parse e-notation
https://bugs.ruby-lang.org/issues/13693#change-66888

* Author: sos4nt (Stefan Schler)
* Status: Rejected
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
`Kernel` can properly convert e-notation strings into numeric objects:

```ruby
     Float('1e+3') #=> 1000.0
  Rational('1e+3') #=> (1000/1)
   Complex('1e+3') #=> (1000.0+0i)
BigDecimal('1e+3') #=> 0.1e4
```

Same for `String`:

```ruby
'1e+3'.to_f #=> 1000.0
'1e+3'.to_r #=> (1000/1)
'1e+3'.to_c #=> (1000.0+0i)
'1e+3'.to_d #=> 0.1e4
```

With one exception:

```ruby
Integer('1e+3') #=> ArgumentError: invalid value for Integer(): "1e+3"
'1e+3'.to_i     #=> 1
```

Ruby should be able to convert e-notation strings to integers, too.



-- 
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>