Patch for number_with_precision, need comments.

Hi, Folks,

I've submited a patch(http://dev.rubyonrails.org/ticket/11409) to fix bug in ticket #8027 and #8275, they are both caused by Ruby's sprintf bug:

"%01.2f" % "31.825"

=> "31.82"

"%01.2f" % "32.825"

=> "32.83"

#8275 provides a solution to initial number with BigDecimal, but it only work for Mac,

My solution is round the number before pass them to sprintf, and I've tested that it works for both Mac, Windows and Linux:

def number_with_precision(number, precision=3)   "%01.#{precision}f" % ((Float(number) * (10 ** precision)).round.to_f / 10 ** precision) end

number_with_precision(31.825, 2)

=> "31.83"

number_with_precision(32.825, 2)

=> "32.83"

Your feedback will be appreciate, becuase my project heavily depend on number_with_precision.

Thanks,

Yuanyi

Your feedback will be appreciate, becuase my project heavily depend on number_with_precision.

Applied. Thanks!