2013-08-01 13 views

Odpowiedz

16

Istnieje kilka sposobów, ale jestem za użyciem String's % (Format) operator:

'%.2f' % [(5.101 * 100).round/100.0] # => "5.10" 

Kernela sprintf metoda ma dokumentację dla różnych flag i modyfikatorów. Jest też Kernel printf, ale, jak już powiedziałem, polecam %.

+0

I? Martwisz się, ponieważ zmiennoprzecinkowe nie są dokładne? http://stackoverflow.com/q/10721739/128421 –

+1

To dobrze, ale twoje komentarze nie mają zastosowania do tego pytania. –

+0

Rozumiem, chodzi o liczby zaokrąglone. Usuwanie ... Dziękuję – Anwar

9

Mam nadzieję, że ci to pomoże.

2.0.0p195 :002 > (52.452158744).round(2) 
=> 52.45 
2.0.0p195 :003 > (20.452158744).round(2) 
=> 20.45 
2.0.0p195 :004 > (20.002555).round(2) 
=> 20.0 
2.0.0p195 :005 > (20.012555).round(2) 
=> 20.01 
+0

'(5.0) .round (2)' zwraca '5.0' zamiast' 5.00' – Anwar

+4

'(5.0) .round (2)' wykonuje zaokrąglenia. Nie formatuje. Są różne. –

Powiązane problemy