Circuit board profit

The problem

An electronics company sells circuit boards at a 40 percent profit, If you know the retail price of a circuit board, you can calculate its profit with the following formula:

  • Profit = Retail price x 0.4

Write a program that asks the user for the retail price of a circuit board calculates the amount of profit earned for that product, and displays the result on the screen.

Breaking it down

// profit as a percentage constant
final static double PROFIT_AS_PERCENT = 0.4;

public static void main(String[] args) {
    // Create a Scanner object for keyboard input.
    Scanner keyboard = new Scanner(;

    // Get the number of years.
    System.out.print("Enter the circuit board's retail price: ");
    double retailPrice = keyboard.nextDouble();

    // Call method to calculate profit.
    double profit = calculateProfit(retailPrice); 
    // Display the amount of profit.
    System.out.println("Amount of profit: $" + profit);
    // close keyboard

 * Method will return the profit based on the 
 * retail price and PROFIT_AS_PERCENT constant.
 * @param retailPrice
 * @return number representing profit
public static double calculateProfit(double retailPrice) {
    return retailPrice * PROFIT_AS_PERCENT;


Enter the circuit board's retail price: 100
Amount of profit: $40.0

Unit tests

public void test_calculateProfit() {
    double value = CircuitBoardProfit.calculateProfit(100);
    assertEquals(40, value, 0);

Level Up

  • When displaying the output, instead of concatenating the $ symbol, what other way could you format the number?
  • Instead of using Scanner, which other way could you write this program for user interaction?