![]() |
| |||||||
| Registrarse | Preguntas Frecuentes | Lista de Foreros | Calendario | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
| | LinkBack | Herramientas | Desplegado |
| |||
| Hola, tengo unos importes, al cual les aplico un porcentaje el 2%, por ejemplo: Cantidad 2% 22,54 0,23 62,40 0,64 22,54 0,23 22,54 0,23 Si la suma la hago con una orden select: el total de cantidad me da:130,02 el 2% me da: 1,31 Si le hago el 2% con php si me da 1,3, que sería lo correcto en mi caso. ¿que está pasando?, he intentado cambiar el tipo de datos, lo tenia en double, 8,2, y lo he pasado a float, y a decimal, pero me sigue pasando lo mismo. la versión de mysql es: MySQL 4.1.16, y php5 ¿como puedo evitar ese redondeo en la orden sql? |
| | ||||
| ||||
| |
| |||
| *** Keneve escribió/wrote (Wed, 30 Jan 2008 13:21:45 -0800 (PST)): > Hola, tengo unos importes, al cual les aplico un porcentaje el 2%, por > ejemplo: > Cantidad 2% > 22,54 0,23 > 62,40 0,64 > 22,54 0,23 > 22,54 0,23 > Si la suma la hago con una orden select: > el total de cantidad me da:130,02 > el 2% me da: 1,31 > > Si le hago el 2% con php si me da 1,3, que sería lo correcto en mi > caso. No tengo ni la más remota idea de qué estás haciendo y el que no nos enseñes nada de código no ayuda lo más mínimo. Pero de la ristra de números que nos enseñas intuyo que estás calculando con SQL el 1% (o un porcentaje parecido) de una serie de valores, el resultado lo redondeas a dos decimales, posteriormente sumas con PHP los valores redondeados y descubres que sale distinto que el porcentaje de la suma de cantidades. ¿Es algo parecido? Redondear implica pérdida de precisión. Si sumas cuatro valores redondeados vas acumulando cuatro pequeños errores. Si haces un único cálculo y redondeas, entonces sólo acumulas un pequeño error. > ¿como puedo evitar ese redondeo en la orden sql? Sin ver la consulta, yo diría que debes quitar la parte donde ponga ROUND(), FORMAT() o algo parecido. -- -+ http://alvaro.es - Álvaro G. Vicario - Burgos, Spain ++ Mi sitio sobre programación web: http://bits.demogracia.com +- Mi web de humor austrohúngaro: http://www.demogracia.com -- |
| |||
| *** Keneve escribió/wrote (Wed, 30 Jan 2008 13:21:45 -0800 (PST)): > Hola, tengo unos importes, al cual les aplico un porcentaje el 2%, por > ejemplo: > Cantidad 2% > 22,54 0,23 > 62,40 0,64 > 22,54 0,23 > 22,54 0,23 > Si la suma la hago con una orden select: > el total de cantidad me da:130,02 > el 2% me da: 1,31 > > Si le hago el 2% con php si me da 1,3, que sería lo correcto en mi > caso. No tengo ni la más remota idea de qué estás haciendo y el que no nos enseñes nada de código no ayuda lo más mínimo. Pero de la ristra de números que nos enseñas intuyo que estás calculando con SQL el 1% (o un porcentaje parecido) de una serie de valores, el resultado lo redondeas a dos decimales, posteriormente sumas con PHP los valores redondeados y descubres que sale distinto que el porcentaje de la suma de cantidades. ¿Es algo parecido? Redondear implica pérdida de precisión. Si sumas cuatro valores redondeados vas acumulando cuatro pequeños errores. Si haces un único cálculo y redondeas, entonces sólo acumulas un pequeño error. > ¿como puedo evitar ese redondeo en la orden sql? Sin ver la consulta, yo diría que debes quitar la parte donde ponga ROUND(), FORMAT() o algo parecido. -- -+ http://alvaro.es - Álvaro G. Vicario - Burgos, Spain ++ Mi sitio sobre programación web: http://bits.demogracia.com +- Mi web de humor austrohúngaro: http://www.demogracia.com -- |
| |||
| *** Keneve escribió/wrote (Wed, 30 Jan 2008 13:21:45 -0800 (PST)): > Hola, tengo unos importes, al cual les aplico un porcentaje el 2%, por > ejemplo: > Cantidad 2% > 22,54 0,23 > 62,40 0,64 > 22,54 0,23 > 22,54 0,23 > Si la suma la hago con una orden select: > el total de cantidad me da:130,02 > el 2% me da: 1,31 > > Si le hago el 2% con php si me da 1,3, que sería lo correcto en mi > caso. No tengo ni la más remota idea de qué estás haciendo y el que no nos enseñes nada de código no ayuda lo más mínimo. Pero de la ristra de números que nos enseñas intuyo que estás calculando con SQL el 1% (o un porcentaje parecido) de una serie de valores, el resultado lo redondeas a dos decimales, posteriormente sumas con PHP los valores redondeados y descubres que sale distinto que el porcentaje de la suma de cantidades. ¿Es algo parecido? Redondear implica pérdida de precisión. Si sumas cuatro valores redondeados vas acumulando cuatro pequeños errores. Si haces un único cálculo y redondeas, entonces sólo acumulas un pequeño error. > ¿como puedo evitar ese redondeo en la orden sql? Sin ver la consulta, yo diría que debes quitar la parte donde ponga ROUND(), FORMAT() o algo parecido. -- -+ http://alvaro.es - Álvaro G. Vicario - Burgos, Spain ++ Mi sitio sobre programación web: http://bits.demogracia.com +- Mi web de humor austrohúngaro: http://www.demogracia.com -- |
| |||
| *** Keneve escribió/wrote (Wed, 30 Jan 2008 13:21:45 -0800 (PST)): > Hola, tengo unos importes, al cual les aplico un porcentaje el 2%, por > ejemplo: > Cantidad 2% > 22,54 0,23 > 62,40 0,64 > 22,54 0,23 > 22,54 0,23 > Si la suma la hago con una orden select: > el total de cantidad me da:130,02 > el 2% me da: 1,31 > > Si le hago el 2% con php si me da 1,3, que sería lo correcto en mi > caso. No tengo ni la más remota idea de qué estás haciendo y el que no nos enseñes nada de código no ayuda lo más mínimo. Pero de la ristra de números que nos enseñas intuyo que estás calculando con SQL el 1% (o un porcentaje parecido) de una serie de valores, el resultado lo redondeas a dos decimales, posteriormente sumas con PHP los valores redondeados y descubres que sale distinto que el porcentaje de la suma de cantidades. ¿Es algo parecido? Redondear implica pérdida de precisión. Si sumas cuatro valores redondeados vas acumulando cuatro pequeños errores. Si haces un único cálculo y redondeas, entonces sólo acumulas un pequeño error. > ¿como puedo evitar ese redondeo en la orden sql? Sin ver la consulta, yo diría que debes quitar la parte donde ponga ROUND(), FORMAT() o algo parecido. -- -+ http://alvaro.es - Álvaro G. Vicario - Burgos, Spain ++ Mi sitio sobre programación web: http://bits.demogracia.com +- Mi web de humor austrohúngaro: http://www.demogracia.com -- |
| |
| |
![]() |
| Herramientas | |
| Desplegado | |
| |
Temas Similares | ||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Evitar q se abran las tablas participes de un select SQL | Andres Gonzalez | Newsgroup microsoft.public.es.vfoxpro.datos | 6 | 03-07-2008 20:19:00 |
| Urgente: ¿Cómo redondeo al alza? | Loki | Newsgroup microsoft.public.es.excel | 1 | 23-02-2008 23:37:10 |
| Evitar redondeo de decimales | Wallas mouse | Newsgroup microsoft.public.es.access | 2 | 25-01-2008 20:28:20 |
| Como hacer una pagina de orden? | Teo | Newsgroup microsoft.public.es.dotnet.aspnet | 4 | 24-01-2008 02:19:02 |
| Bono anuló una orden de Aznar para evitar que la 'Álvaro de Bazán' participase en actos de guerra | Galileo | Newsgroup es.charla.sindical | 0 | 23-03-2007 18:43:44 |