Eu estou fazendo um programa pra calcular o salário liquido, e quando entro os valores eles batem, mas quando coloco por exemplo 2000, 3000, 4000, 5000... o valor não bate exatamente com o do calculo do salário liquido, dá uma diferença não muito grande mas dá, nao fica exato. Alguém pode me ajudar?
import java.util.Scanner;
public class Exercicio1 {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
double salarioB, salarioL, INSS, IR;
System.out.print("Informe seu salário bruto: ");
salarioB = teclado.nextDouble();
if (salarioB <= 1100)
INSS = (0.075 * salarioB);
else
if (salarioB > 1100 && salarioB <= 2203.48)
INSS = (0.09 * salarioB) - 16.50;
else if (salarioB > 2203.48 && salarioB <= 3305.22)
INSS = (0.12 * salarioB) - 82.60;
else
if ((salarioB > 3305.22 && salarioB <= 6433.57))
INSS = (0.14 * salarioB) - 148.71;
else
INSS = 751.99;
if (salarioB <= 1903.98)
IR = 0;
else
if (salarioB > 1903.98 && salarioB <= 2826.65)
IR = 0.075*(salarioB - INSS) - 142.80;
else if (salarioB <= 3751.05)
IR = 0.15 * (salarioB - INSS) - 354.80;
else
if (salarioB <= 4664.68)
IR = 0.225 * (salarioB - INSS) - 636.13;
else
IR = 0.275 * (salarioB - INSS) - 869.36;
salarioL = (salarioB - INSS) - IR;
System.out.printf("O salário liquido será de R$%4.2f", salarioL);
teclado.close();
}
}