CORBATIN Posted May 17, 2012 Share Posted May 17, 2012 (edited) Hola, he revisado las opciones de redondeo en los precios y no salen correctamente, me redondea demasiado, es decir, un precio de 0.0516 sale como 0.50 y al poner el iva del 8% en lugar de 0.0557 sale 0.60. La versión de prestashop es la 1.4.8.2, alguién me podría ayudar?, gracias. Edited May 17, 2012 by CORBATIN (see edit history) Link to comment Share on other sites More sharing options...
E-kipper Posted May 18, 2012 Share Posted May 18, 2012 El redondeo es correcto: el tercer decimal se desprecia si vale entre 0 y 4, y si vale entre 5 y 9 se suma una unidad al segundo decimal. Si quieres puedes poner a mano el precio final con IVA, y recalculará el precio sin IVA. Link to comment Share on other sites More sharing options...
CORBATIN Posted May 18, 2012 Author Share Posted May 18, 2012 Hola, ya sé que el redondeo es correcto pero quiero que se haga a 3 decimales y no a dos como aparece en la imagen, es decir, si el precio base es de 0.0516, al calcular el iva y sumarlo que también mantenga los 3 o 4 digitos, debería dar como resultado 0.0557 y no 0.60, ¿como puedo conseguir esa cantidad a 4 digitos en el calculo del iva y sin redondear?, gracias. Link to comment Share on other sites More sharing options...
CORBATIN Posted May 18, 2012 Author Share Posted May 18, 2012 Bueno, en el administrador ya lo he conseguido modificando la siguiente función en el archivo tools.js del directorio /js: function ps_round(value, precision) { if (typeof(roundMode) == 'undefined') roundMode = 2; if (typeof(precision) == 'undefined') precision = 2; method = roundMode; if (method == 0) return ceilf(value, precision); else if (method == 1) return floorf(value, precision); precisionFactor = precision == 0 ? 1 : Math.pow(10, precision); return Math.round(value * precisionFactor) / precisionFactor; } He sustituido el 10 por el 100 y el redondeo genial. function ps_round(value, precision) { if (typeof(roundMode) == 'undefined') roundMode = 2; if (typeof(precision) == 'undefined') precision = 2; method = roundMode; if (method == 0) return ceilf(value, precision); else if (method == 1) return floorf(value, precision); precisionFactor = precision == 0 ? 1 : Math.pow(100, precision); return Math.round(value * precisionFactor) / precisionFactor; } Ahora me falta la parte pública que aún no lo he conseguido, gracias. Link to comment Share on other sites More sharing options...
CORBATIN Posted May 24, 2012 Author Share Posted May 24, 2012 Hola, nadie se anima a ayudarme al dichoso redondeo?. Link to comment Share on other sites More sharing options...
Toforca Posted October 22, 2012 Share Posted October 22, 2012 Hola, soy Tomas. Yo tengo solucionado el problema con el redondeo. Si sigues interesado en ello, contacta conmigo. Saludos Link to comment Share on other sites More sharing options...
nadie Posted October 22, 2012 Share Posted October 22, 2012 Hola, soy Tomas. Yo tengo solucionado el problema con el redondeo. Si sigues interesado en ello, contacta conmigo. Saludos Si tienes un aporte compártelo directamente, en este mismo post o en la sección de aportes: http://www.prestasho...ambian-la-vida/ PD: Recuerda que el poder del la comunidad es el de compartir. 1 Link to comment Share on other sites More sharing options...
Recommended Posts