java.util.IllegalFormatConversionException: f! = java.lang.String Error

import javax.swing.JOptionPane;

public class Minutes {

    public static void main(String[] args) {
        double  BasePlanCost = 20;
        final double BaseCostPerMinute=0.15;

        double MinutesUsed = Double.parseDouble(JOptionPane.showInputDialog("Please enter the amount of minutes Used: "));
        double CostForMinutes = BaseCostPerMinute * MinutesUsed;
        double GrandTotal = BasePlanCost + CostForMinutes;
        JOptionPane.showMessageDialog(null, String.format("$%.2f","**IST Wireless Receipt**","\n","Base Plan Cost:" +BasePlanCost,"/n","Cost For Minutes Used: "+ CostForMinutes,"/n","Grand Total :" +GrandTotal));

    }

}

Este programa ingresa la cantidad de minutos que ingresa el usuario y calcula el total general agregando CostForMinutes y BasePlanCost. CostForMinutes se calcula multiplicando los minutos que ingresa el usuario y BaseCostPerMinute. La salida es todos los números generados por dos decimales y emitidos como un recibo.

Cuando compilo el programa, me permite ingresar la cantidad de minutos, pero el código colapsa y me da este error

exception in thread "main" java.util.IllegalFormatConversionException: f != java.lang.String

¿Puede alguien ayudarme?

EDITAR así es como quiero que se vea la salidahttp://i.stack.imgur.com/CubfC.png

Respuestas a la pregunta(2)

Su respuesta a la pregunta