Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
141 views
in Technique[技术] by (71.8m points)

java - Why am I getting unexpected output?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Your basic calculation is correct, and for the integer values you provide, the correct output is indeed 560.

Two problems however:

  1. If the discount calculates to a floating point number, your result will be incorrect. You need to force the calculation to be a floating point calculation, e.g. like this (note the 100f):

    float amount = total - (total * discount / 100f);
    
  2. The assignment asks you to round down if the result is a floating point number. Math.round() doesn't round down, it rounds to the nearest integer. You need to use Math.floor() instead or just cast to int:

    return (int) Math.floor(amount);
    // or
    return (int) amount;
    

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...