Fórmulas para el IVA
Hoy acaba de subir el IVA, así que para refrescar un poco nuestras matemáticas básicas, vamos a ver que operaciones podemos hacer con él. El lenguaje de programación es Groovy, pero con algunos cambios es compatible en Java.
Obtener el IVA de un producto
public static BigDecimal calcIva(BigDecimal p, BigDecimal IVA) { return p * (IVA/100) }
assert calcIva(100, 21) == 21
Obtener el precio con IVA de un producto que no tiene IVA
public static BigDecimal sumaIva(BigDecimal p, BigDecimal IVA) { return p * (1+(IVA/100)) }
assert sumaIva(100, 21) == 121
Dado el precio con IVA de un producto, averiguar su valor sin IVA
public static BigDecimal quitaIva(BigDecimal p, BigDecimal IVA) { return p / (1+(IVA/100)) }
assert quitaIva(121, 21) == 100
Obtener solo el IVA de un producto con IVA
public static BigDecimal extraeIva(BigDecimal p, BigDecimal IVA) { return p / (1+(100/IVA)) }
assert extraeIva(121, 21) == 21
Supongamos, que es mucho suponer, que sube el IVA del 18% al 21%. Y que el comercio decide “asumir” esta subida, bajando el importe del producto para que, al aplicar el nuevo IVA, tenga el mismo precio final.
public static BigDecimal asumeIva(BigDecimal p, BigDecimal IVA, BigDecimal IVA_NUEVO) {
return quitaIva(sumaIva(p, IVA), IVA_NUEVO)
}
println asumeIva(100, 18, 21) // devuelve 97.520661157
Es decir, que si antes nuestro producto de 100€ lo vendíamos por 118€ con IVA al 18%, ahora para seguir vendiéndolo a 118€ pero con el IVA al 21% debemos rebajar la base imponible a 97.52€
El uso de BigDecimal en las operaciones no es fortuito. En otro post un poco más avanzado (este ha sido muy básico) explicaremos como guardar y operar correctamente precios con decimales, donde se verá que los Float y Double no son precisamente la mejor opción, y BigDecimal es el único tipo que nos ofrece seguridad a la hora de hacer operaciones matemáticas con importes.
Categorías
- Crónicas (6)
- Groovy (20)
- Humor (14)
- Internet (48)
- Juegos (26)
- Noticias (110)
- Programación (73)
- Software (25)
- Tutoriales (11)
- Yo, programador (39)




En

[...] algunos días comentaba, en un artículo muy básico, cuáles eran las operaciones matemáticas o fórmulas para sacar y extraer el IVA de los importes. [...]