resueltos redondeo redondear primaria por para online numeros naturales mas grandes ejercicios decimales decena como cercana aproximacion ruby jruby rounding

redondeo - ¿Cómo se redondea un flotador con dos decimales en jruby?



redondeo de numeros decimales (6)

Editar

Después de recibir comentarios, parece que la solución original no funcionó. Es por eso que actualicé la respuesta como una de las sugerencias.

def float_of_2_decimal(float_n) float_n.to_d.round(2, :truncate).to_f end

Otras respuestas pueden funcionar, si desea tener números redondeados de 2 decimales. Pero, si desea tener números de coma flotante con los dos primeros lugares decimales sin redondeo , esas respuestas no ayudarán.

Entonces, para obtener un número de coma flotante con dos primeros decimales, utilicé esta técnica. No funciona en algunos casos

def float_of_2_decimal(float_n) float_n.round(3).to_s[0..3].to_f end

con 5.666666666666666666666666 , devolverá 5.66 lugar de 5.67 redondeado. Espero que ayude a alguien

JRuby 1.6.x. ¿Cómo redondeas un flotante a decimales en jruby?

number = 1.1164 number.round(2) The above shows the following error wrong number of arguments (1 for 0)

¿Cómo redondeo esto a 2 decimales?


Float # round puede tomar un parámetro en Ruby 1.9, no en Ruby 1.8. JRuby tiene como valor predeterminado 1.8, pero es capaz de ejecutarse en modo 1.9 .


Prueba esto:

module Util module MyUtil def self.redondear_up(suma,cantidad, decimales=0) unless suma.present? return nil end if suma>0 resultado= (suma.to_f/cantidad) return resultado.round(decimales) end return nil end end end


para truncar un decimal, he usado el siguiente código:

<th><%#= sprintf("%0.01f",prom/total) %><!--1dec,aprox--> <% if prom == 0 or total == 0 %> N.E. <% else %> <%= Integer((prom/total).to_d*10)*0.1 %><!--1decimal,truncado--> <% end %> <%#= prom/total %> </th>

Si desea truncar a 2 decimales, debe usar Integr(a*100)*0.01


sprintf(''%.2f'', number) es una forma críptica, pero muy poderosa de formatear números. El resultado es siempre una cadena, pero dado que estás redondeando, supongo que lo haces para fines de presentación de todos modos. sprintf puede formatear cualquier número casi de cualquier manera, y mucho más.

Documentación completa de sprintf: http://www.ruby-doc.org/core-2.0.0/Kernel.html#method-i-sprintf


(5.65235534).round(2) #=> 5.65