2016-09-09 2 views
0

Код:проблемы с Явы и Printf и десятичные

import java.util.Scanner; 

public class sdusti00lab1 { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     double AA = 8.25; 
     double CA = 6.50; 
     double ACP = 9.00; 
     double CPC = 6.25; 

     int numA, numC; 
     double numSP, numLP; 
     Scanner keys = new Scanner(System.in); 
     System.out.print(" enter number of adults "); 
     numA = keys.nextInt(); 
     System.out.println(" enter number of children "); 
     numC = keys.nextInt(); 
     System.out.println(" enter number of small popcorn"); 
     numSP = keys.nextDouble(); 
     System.out.println(" enter number of large popcorn"); 
     numLP = keys.nextDouble(); 
     double AAddPrice = (numA*AA); 
     double CAddPrice = (numC*CA); 
     double ACPT = ((ACP*.094)*AA); 
     double CPCT = ((CPC*.094)*CA); 
     double SPTax = (ACP*.094); 
     double LPTax = (CPC*.094); 
     System.out.println("Adult admission "+"\t"+numA + "\t$" + AAddPrice); 
     System.out.println("Child admission "+"\t"+numC + "\t$" + CAddPrice); 
     System.out.println("Adult popcorn "+"\t\t"+ACP + "\t$" + ACPT); 
     System.out.println("Child popcorn "+"\t\t"+CPC + "\t$" + CPCT); 
     System.out.println("Tax "+"\t\t\t$"+ (SPTax + LPTax)); 
     System.out.println("Total "+"\t\t\t$"+(AAddPrice+CAddPrice+CPCT+ACPT)); 
    } 
} 

мне нужно изменить последние 6 строк кода для получения десятичного, который останавливается на номер второй в десятичной системе, но я просто не знаю, как это сделать.

+1

Подсказка: имена переменных идут верблюжьего - всегда. Таким образом, они никогда не запускают Uppercase (кроме CONSTANTS). Затем: за каждую секунду вы сохраняете при вводе ** коротких ** имен переменных, которые вы позже тратите на минуту, указав «что это было снова». Итак: используйте имена, которые что-то означают. – GhostCat

ответ

0

Существуют различные способы превратить числа (float, double, ..) в форматированные строки. У Oracle есть хорошая оценка overview.

Важный аспект здесь понять: этот процесс работает вами

A), задающие формат, который описывает, как результат должен выглядеть

B) Вы называющий форматировщика с этим форматом и цифры в формате

1

Используйте System.out.printf или System.out.format для этого. Используйте %.2f для печати до двух десятичных знаков.

System.out.printf("Adult admission \t%d\t$%.2f%n", numA, AAddPrice); 
+0

Я думаю, это то, что вы имели в виду;) –

+0

И поскольку мы уже используем 'printf', почему мы не избавимся от этих' \ t'? Разве это не одна из основных причин существования 'printf'? – Pshemo

+0

System.out.printf («Налог \ t% d \ t $%. 2f% n", (SPTax + LPTax)); System.out.println ("Всего" + "\ t \ t \ t $" + (AAddPrice + CAddPrice + CPCT + ACPT)); супер полезно! но почему-то эти последние два не работают правильно. j –

-1

Используйте коды, описанные для system.out.format [здесь] [https://docs.oracle.com/javase/tutorial/java/data/numberformat.html]

+1

Ссылки formula is '[description] (link)' поэтому вам нужно обернуть ссылку в '(' ')', а не '[' ']'. В любом случае посмотрите: [Являются ли ответы, которые просто содержат ссылки в других местах «хорошие ответы»?] (Http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links- whereewhere- на самом деле-хорошие-ответы) – Pshemo

Смежные вопросы