# Truncate float to 2 decimals

how do i truncate the float to 2 decimals

irb(#Object:0x3d95578):001:0> f=0.911501706632285
=> 0.911501706632285

Junkone wrote:

how do i truncate the float to 2 decimals

irb(#Object:0x3d95578):001:0> f=0.911501706632285
=> 0.911501706632285

Do you really want to change f?

f2 = (f*100).to_i / 100.0

Or do you just want to display f with 2 decimals?

“%5.2f” % f

On Aug 13, 2008, at 9:47 AM, Junkone wrote:

how do i truncate the float to 2 decimals

irb(#Object:0x3d95578):001:0> f=0.911501706632285
=> 0.911501706632285

just use the normal math way

cfp:~ > cat a.rb
float = 0.911501706632285

puts( Integer(float * 100) / Float(100) )

cfp:~ > ruby a.rb
0.91

With Facets:

require ‘facets/float/round’

f=0.911501706632285

f.round_at(2)

or

f.round_to(.01)

Also, Ruby 1.9 modifies #round to take a decimal place, I believe.

T.

On Aug 13, 2008, at 10:47 AM, Junkone wrote:

how do i truncate the float to 2 decimals

irb(#Object:0x3d95578):001:0> f=0.911501706632285
=> 0.911501706632285

“%0.2f” % 0.911501706632285
=> “0.91”

James Edward G. II

You might also try :
puts (((float * 100.0).round / 100.0).to_i)