2016-12-07 6 views
0

У меня действительно плохо с printf. Как добавить% $ 2f в мой формат Струнный так что я могу получить что-то чистое, как это:. (я забыл добавить «$» ранее)java: Как использовать printf для печати знака доллара и двойного с двумя десятичными знаками?

MP3 Player cost:      $580.39 
Smart Phone cost:      $510.93 
Digital Watch cost:      $495.99 
Tablet cost:       $643.17 
Portable Gaming System cost:   $485.17 



import java.util.Scanner; 

public class test2 { 

    public static void main(String[] arg) { 

     Scanner in = new Scanner(System.in); 

     int [][] matrix = { // 5 rows, 7 cols 
       { 9, 13, 4, 7, 1, 14, 10}, 
       { 8, 2, 12, 11, 6, 15, 2}, 
       { 9, 6, 7, 10, 15, 8, 3}, 
       { 12, 14, 8, 15 ,2 , 7, 8}, 
       { 12, 10, 3, 11, 8, 3, 5}, 
     }; 

     String [] product = new String [5]; 
     product [0] = "MP3 Player"; 
     product [1] = "Smart Phone"; 
     product [2] = "Digital Watch"; 
     product [3] = "Tablet"; 
     product [4] ="Portable Gaming System"; 

     double [] price = {10.75, 15.27, 5.98, 9.67, 4.32, 12.50, 1.42}; // 7 elements 

     costOfEach(matrix, product, price); 
    } 

    // compute and display the cost of manufacturing each device 
    public static double costOfEach(int matrix[][], String[] product, double price []){ 
     double cost = 0.00; 
     String item = ""; 
     double maxCost = 0.00; 
     double minCost = Double.MAX_VALUE; 
     int maxCostIndex = 0; 
     int minCostIndex = 0; 

Это прямо здесь. Я пробовал много комбинаций, но никаких результатов

 String format = "%-40s%s%n"; 
     for (int row = 0; row < matrix.length; row++){ 
      cost = 0; 
      for (int col = 0, i = 0; col < matrix[0].length && i < price.length; col++, i++){ 

       cost += matrix[row][col] * price [i]; 
      } 

      System.out.printf(format, product[row] + " cost: $%.2f", cost); 
     } 
       return cost; 
    } 

} 
+1

[printf cheatsheet] (http://alvinalexander.com/programming/printf-format-cheat-sheet) – rafid059

+0

Благодарим вас за ответ. Не могли бы вы рассказать нам больше о том, как объединить эти форматирования? Было бы еще более полезно. – Neo

ответ

0

Я внесла некоторые изменения. Согласно вашему требованию, ваш код должен быть таким:

import java.util.Scanner;

общественного класса test2 {

public static void main(String[] arg) { 

    Scanner in = new Scanner(System.in); 

    int [][] matrix = { // 5 rows, 7 cols 
      { 9, 13, 4, 7, 1, 14, 10}, 
      { 8, 2, 12, 11, 6, 15, 2}, 
      { 9, 6, 7, 10, 15, 8, 3}, 
      { 12, 14, 8, 15 ,2 , 7, 8}, 
      { 12, 10, 3, 11, 8, 3, 5}, 
    }; 

    String [] product = new String [5]; 
    product [0] = "MP3 Player"; 
    product [1] = "Smart Phone"; 
    product [2] = "Digital Watch"; 
    product [3] = "Tablet"; 
    product [4] ="Portable Gaming System"; 

    double [] price = {10.75, 15.27, 5.98, 9.67, 4.32, 12.50, 1.42}; // 7 elements 

    costOfEach(matrix, product, price); 
} 

// compute and display the cost of manufacturing each device 
public static double costOfEach(int matrix[][], String[] product, double price []){ 
    double cost = 0.00; 
    String item = ""; 
    double maxCost = 0.00; 
    double minCost = Double.MAX_VALUE; 
    int maxCostIndex = 0; 
    int minCostIndex = 0; 

    String format = "%-40s$%.2f%n"; 
    for (int row = 0; row < matrix.length; row++){ 
     cost = 0; 
     for (int col = 0, i = 0; col < matrix[0].length && i < price.length; col++, i++){ 

      cost += matrix[row][col] * price [i]; 
     } 

     System.out.printf(format, product[row] + " cost:", cost); 
    } 
      return cost; 
} 

}

+0

Ответы только на код редко желательны. Подумайте о том, чтобы добавить объяснение, почему он должен работать для OP. – rafid059

+0

Спасибо, Винай Патель и Рафидзумаман Сонет. – Neo

0

Верхний ответ правильный, чтобы добавить $ знак просто изменить следовать линии:

String format = "%-40s$%.2f%n"; 

Ваш выход:

MP3 Player cost:      $580,39 
Smart Phone cost:      $510,93 
Digital Watch cost:      $495,99 
Tablet cost:       $643,17 
Portable Gaming System cost:   $485,17 
+0

спасибо. Я понимаю это сейчас. – Neo

+0

Если вы ищете дополнительную информацию о «форматах printf», также вы должны прочитать, как работает метод printf – Aramka