FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#12
|
|||
|
|||
Hola a todos/as.
El tema del redondeo me ha preocupado en varias ocasiones. El problema que tengo es cuando aparece un valor como 0.75444448 y lo quieres redondear a 3 decimales. Lo normal en todas las funciones que he visto (incluidas las que he revisado en este hilo) es que, para redondear a 3 decimales, se utilizan 4 decimales y, en este ejemplo (el valor 0.75444448), el redondeo daría 0.754 . Lo que es muy correcto, pero que no aprovecha la totalidad de decimales disponibles. Si se aprovecharan todos los decimales para redondear, el valor final debería dar 0.755 . Todo ello redondeando con:
Como el tema no se resuelve en las funciones de otras personas que he visto, me he animado a hacer una función en la que se indique lo que es normal, el valor decimal y el número de decimales a los cuales hay que redondear; pero añadiendo otro parámetro: el número de decimales desde el que se empieza a redondear de forma decreciente. En el ejemplo, el valor 9.97444756, se redondea a 3 decimales y se empieza a calcular el redondeo desde los 7 decimales (luego se hará con 6, luego con 5, ... hasta que se llegue a 3). He utilizado recursión y es de la primeras veces que lo hago; así que puede haber algún error, aunque las pruebas que hice salieron bien. Este es el código:
Lo incluyo por si esto le es útil a alguien. Saludos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como redondear un numero en un procedimiento en Firebird | Gaby123 | SQL | 0 | 26-02-2007 18:25:26 |
Cómo Redondear a 4 decimales un campo de tipo Numérico | vick | Conexión con bases de datos | 1 | 11-10-2005 01:04:23 |
Funcio para obtener las decimas de segundo | enzo | Varios | 2 | 13-05-2005 01:06:11 |
Mostrar un Float como un hh:mm:ss | rjsitruiz | Impresión | 2 | 04-07-2004 14:25:29 |
|