我的代码如下:
import java.util.Scanner;
public class MoVerkoopPrijs {
public static void main(String[] args) {
float inkoopPrijs;
final int BTW_HOOG = 21;
final int BTW_LAAG = 6;
double winstMarge;
Scanner in = new Scanner(System.in);
//hieronder wordt je inkoopprijs gevraagd en die moet je dan invoeren
System.out.println("wat is jouw inkoopprijs?");
inkoopPrijs = in.nextFloat();
//hieronder wordt je winstmarge gevraagd en die moet je dan ook invoeren
System.out.println("wat is jouw winstmarge?");
winstMarge = in.nextDouble();
//hieronder zie je de formules hoe je exlusief of inclusief BTW berekend
//hieronder zie je ook wat je moet doen als je de verkoopprijs wilt berekenen.
double winstGetal = (winstMarge / 100);
double verkoopPrijs = inkoopPrijs * (1 + winstGetal);
double inclusiefBtwLaag = (verkoopPrijs / 100) * BTW_LAAG + verkoopPrijs;
double inclusiefBtwHoog = (verkoopPrijs / 100) * BTW_HOOG + verkoopPrijs;
//hieronder print je dan de uiteindelijke prijzen uit
System.out.println("Verkoopprijs exclusief BTW:" + verkoopPrijs );
System.out.println("Verkoopprijs inclusief 6% BTW:" + inclusiefBtwLaag );
System.out.println("Verkoopprijs inclusief 21% BTW:" + inclusiefBtwHoog );
}
}
当前输出为:
Verkoopprijs exclusief BTW: 17.726400604248045
Verkoopprijs inclusief 6% BTW: 18.78998464050293
Verkoopprijs inclusief 21% BTW: 21.448944731140134
但是代码弄乱了输出中的最后几个小数位。6% 的实际输出应该是:18.789984000000004。我的代码有什么问题?
我试过从 float 切换到 int 和 double,但没有一个对我有用。
www说
相关分类