```Hi,

Yukihiro Matsumoto writes:
> Hi,
>
> Are you having happy Christmas holidays?
> I need to work without holidays, sigh.

oh yeah! I have, thanks for asking ;-) But some of my colleagues are
not so happy: Y2K maintenance... :-/

[...]

>
> I just remembered we already have two conversion methods!
>
>   string.to_i
>   Integer(string)
>
> The latter is more intelligent, it understands `0x', etc prefix to
> decide base radix.  So it may be good to add exception raising feature
> to the latter.  e.g.

As I have understood it,

Integer("foo12")

should also raise an exception, shouldn't it? I would go a step
further. I would say that there is a difference between conversion and
conversion (sounds silly, neh?) :-/

If I use Integer, Float, String, ... I would raise an exception, if
the result of the conversion couldn't converted back to the original
object. That means:

s = "12"; i = Integer(s)    # ok, as: String(i) == s
s = "foo"; i = Integer(s)   # ERROR, as: String(i) != s
s = "foo12"; i = Integer(s) # ERROR, as: String(i) != s

but also for ...

i = 12; f = Float(i)        # ok, as: Integer(f) == i
f = 12.0; i = Integer(f)    # ok, as: Float(i) == f
f = 12.2; i = Integer(f)    # ERROR, as: Float(i) != f

There should be explicite methods for rounding like: ceil, floor,
round, ...

IMHO the '.to_x' methods could remain as they are!

[...]

>
> The another option is to raise exception for non-numeric string at
> every string->integer convsersion.  There's no strong reason to return
> zero for non-numeric strings in Ruby.  e.g.

That, I think, is not necessary. Sometimes it is right pretty to have
to_x methods behaving as they do currently!

[...]

> 							matz.
>

\cle

--
Clemens Hintze  mailto: c.hintze / gmx.net
```