number format

L

Li Chen

Hi all,

I have a number, for example, 1.123456789. What is the Ruby way to
change it into whatever number of floating points such as 1.12,
1.123,1.1234568 or 1.12345679.

Thanks,

Li
 
D

Daniel Finnie

You can use the number.round method, but this doesn't take a number of
decimal places.

To round 1.234 to 1.23 use this code:
x = 1.234
x = x * 100 # -> 123.4
x = x.round -> 123
x = x / 100.0 => 1.23

At least, that's the best method I can find from the Ruby docs...

Dan
 
G

George Ogata

Hi all,

I have a number, for example, 1.123456789. What is the Ruby way to
change it into whatever number of floating points such as 1.12,
1.123,1.1234568 or 1.12345679.

Thanks,

Li

It might be better to leave the precision alone until you print it, in
which case, you can print it with #sprintf or String#% or similar:

irb(main):001:0> '%.2f' % 1.23456789
=> "1.23"
irb(main):002:0> '%.5f' % 1.23456789
=> "1.23457"
 
C

chen li

It might be better to leave the precision alone
until you print it, in
which case, you can print it with #sprintf or
String#% or similar:

irb(main):001:0> '%.2f' % 1.23456789
=> "1.23"
irb(main):002:0> '%.5f' % 1.23456789
=> "1.23457"


I think I prefer the suggestion.

Li





____________________________________________________________________________________
Have a burning question?
Go to www.Answers.yahoo.com and get answers from real people who know.
 
J

Jeremy Hinegardner

Hi all,

I have a number, for example, 1.123456789. What is the Ruby way to
change it into whatever number of floating points such as 1.12,
1.123,1.1234568 or 1.12345679.

You could use facets:

% sudo gem install facets
% irb

irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'facet/float/round_at'
=> true
irb(main):003:0> require 'facet/float/round_to'
=> true
irb(main):004:0> x = 1.123456789
=> 1.123456789
irb(main):005:0> x.round_at(3)
=> 1.123
irb(main):006:0> x.round_at(7)
=> 1.1234568
irb(main):007:0> x.round_at(100)
=> 1.123456789
irb(main):008:0> x.round_to(0.001)
=> 1.123
irb(main):009:0> x.round_to(0.000001)
=> 1.123457

enjoy,

-jeremy
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,219
Messages
2,571,118
Members
47,737
Latest member
CarleyHarm

Latest Threads

Top