# Is posible String#to\_s doesn't add the decimal value if not needed?

**URL:** <https://www.ruby-forum.com/t/is-posible-string-to-s-doesnt-add-the-decimal-value-if-not-needed/141952>\
**Category:** Ruby\
**Created:** [July 2, 2008, 12:12am UTC](https://www.ruby-forum.com/t/is-posible-string-to-s-doesnt-add-the-decimal-value-if-not-needed/141952 "2008-07-02T00:12:34Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![ISSSSaki\_Baz\_C](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/51bf81/32.png) [@ISSSSaki\_Baz\_C](https://www.ruby-forum.com/u/ISSSSaki_Baz_C)\
**Post date:** [July 2, 2008, 12:12am UTC](https://www.ruby-forum.com/t/is-posible-string-to-s-doesnt-add-the-decimal-value-if-not-needed/141952/1 "2008-07-02T00:12:34Z")

</div>

Hi, I want to convert a string to a Float value:

irb\> “1.5”.to\_f  
=\> 1.5

But if I do:

irb\> “1”.to\_f  
=\> 1.0

I get ‘1.0’ instead of just ‘1’. Is not possible to just get ‘1’ in this  
case?

Thanks a lot.

---

<div class="post-metadata">

**Author:** ![ISSSSaki\_Baz\_C](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/51bf81/32.png) [@ISSSSaki\_Baz\_C](https://www.ruby-forum.com/u/ISSSSaki_Baz_C)\
**Post date:** [July 2, 2008, 12:17am UTC](https://www.ruby-forum.com/t/is-posible-string-to-s-doesnt-add-the-decimal-value-if-not-needed/141952/2 "2008-07-02T00:17:50Z")

</div>

On Jul 1, 2008, at 4:09 PM, Iñaki Baz C. wrote:

> I get ‘1.0’ instead of just ‘1’. Is not possible to just get ‘1’ in  
> this case?
> 
> Thanks a lot.
> 
> –  
> Iñaki Baz C.

n = Integer(n) rescue Float(n)

a @ [http://codeforpeople.com/](http://codeforpeople.com/)

---

<div class="post-metadata">

**Author:** ![ISSSSaki\_Baz\_C](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/51bf81/32.png) [@ISSSSaki\_Baz\_C](https://www.ruby-forum.com/u/ISSSSaki_Baz_C)\
**Post date:** [July 2, 2008, 12:18am UTC](https://www.ruby-forum.com/t/is-posible-string-to-s-doesnt-add-the-decimal-value-if-not-needed/141952/3 "2008-07-02T00:18:25Z")

</div>

IÃ±aki Baz C. wrote:

> I get ‘1.0’ instead of just ‘1’. Is not possible to just get ‘1’ in this case?  
> Well, you could do this:

a = [“1”, “1.5”].map do |x|  
Float x # validate  
eval x  
end

p a

---

<div class="post-metadata">

**Author:** ![ISSSSaki\_Baz\_C](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/51bf81/32.png) [@ISSSSaki\_Baz\_C](https://www.ruby-forum.com/u/ISSSSaki_Baz_C)\
**Post date:** [July 2, 2008, 12:24am UTC](https://www.ruby-forum.com/t/is-posible-string-to-s-doesnt-add-the-decimal-value-if-not-needed/141952/4 "2008-07-02T00:24:51Z")

</div>

Just a thought…

Numeric(“1.5”).should\_return(1.5)  
Numeric(“1”).should\_return(1)

---

<div class="post-metadata">

**Author:** ![ISSSSaki\_Baz\_C](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/51bf81/32.png) [@ISSSSaki\_Baz\_C](https://www.ruby-forum.com/u/ISSSSaki_Baz_C)\
**Post date:** [July 2, 2008, 12:45am UTC](https://www.ruby-forum.com/t/is-posible-string-to-s-doesnt-add-the-decimal-value-if-not-needed/141952/5 "2008-07-02T00:45:54Z")

</div>

El MiÃ©rcoles, 2 de Julio de 2008, Joel VanderWerf escribiÃ³:

> Just a thought…
> 
> Numeric(“1.5”).should\_return(1.5)  
> Numeric(“1”).should\_return(1)

Thanks to all for your fast replies 🙂
