私はJavaを使い慣れていないし、クレジットカードに料金を追加して料金を追加するクレジットカードのJava割り当てをコーディングしています。 Ifステートメントを使用して関心をコード化しましたが、丸められていない小数点に出力します。Javaでif文を使用するときに、どのように小数値を丸めますか?
public class Credit_Card
{
public static void main (String []args)
{
Scanner c = new Scanner (System.in);
double num1, num2, interest, newBalance, min = 0;
int num3 = 50;
System.out.println ("What is the previous balance?");
num1 = c.nextInt();
System.out.println ("What is the total amount of additional charges?");
num2 = c.nextInt();
interest = num2;
if (num2 == 0)
interest = (interest + 0); //There is no interest if num2 is 0
if (num2 > 0)
interest = (interest*(2.0f/100.0f)); //total amount of money owed is multiplied by 2 percent
newBalance = num1 + num2 + interest;
System.out.println ("CS CARD International Statement");
System.out.println ("===============================");
System.out.println ("");
System.out.println ("Previous Balance: $" + num1);
System.out.println ("Additional Charges: $" + num2);
System.out.println ("Interest: $" + interest);
System.out.println ("");
System.out.println ("New Balance: $" + newBalance);
System.out.println ("");
if (newBalance < 50)
min = newBalance;
if(newBalance >= 50 && newBalance <= 300)
min = num3;
if(newBalance > 301)
min = (newBalance*(20.0f/100.0f));
System.out.println ("Minimum Payment: $" + min);
}
}
このような出力を見て:
What is the previous balance?
1000
What is the total amount of additional charges?
25
CS CARD International Statement
===============================
Previous Balance: $1000.0
Additional Charges: $25.0
Interest: $0.4999999888241291
New Balance: $1025.4999999888241
Minimum Payment: $205.100003053993
私は関心が他のすべてアップ永遠の小数、それネジですのでと思います。関心が「0.49999999999」ではなく、「0.50」のようにしたいと思う。助けを借りてありがとうございます。
見て[こちら](http://stackoverflow.com/questions/153724/how-to-round-a-number-to-n-decimal-places-in-java) – blackpen
'if'ステートメントはドンしません丸めとは何の関係もありません。あなたは浮動小数点でお金を計算してはいけません。 – EJP