Bird
Raised Fist0
C Sharp (C#)programming~5 mins

Format specifiers for numbers and dates in C Sharp (C#) - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the format specifier "C" do when formatting numbers in C#?
The "C" specifier formats a number as currency, adding the currency symbol and two decimal places by default.
Click to reveal answer
beginner
How do you format a DateTime to show only the year and month in C#?
Use the format specifier "yyyy-MM" with DateTime.ToString(), which shows the full year and two-digit month.
Click to reveal answer
intermediate
What is the difference between "D" and "d" format specifiers for dates in C#?
"D" shows the long date pattern (e.g., "Monday, June 5, 2023"), while "d" shows the short date pattern (e.g., "6/5/2023").
Click to reveal answer
beginner
How does the "N" format specifier format numbers in C#?
"N" formats numbers with thousands separators and two decimal places by default (e.g., "1,234.56").
Click to reveal answer
beginner
What does the format specifier "F" do when formatting numbers?
"F" formats a number as a fixed-point number with a default of two decimal places (e.g., "1234.56"). You can specify decimals like "F3" for three decimals.
Click to reveal answer
Which format specifier would you use to display a number as currency in C#?
A"F"
B"N"
C"D"
D"C"
What does the "d" format specifier show when formatting a DateTime?
AShort date pattern (e.g., 6/5/2023)
BLong date pattern (e.g., Monday, June 5, 2023)
CTime only
DFull date and time
How would you format a number with thousands separators and two decimals in C#?
A"C"
B"F"
C"N"
D"P"
Which format specifier shows the full year and month in a DateTime string?
A"yyyy-MM"
B"d"
C"D"
D"F"
What does the "F3" format specifier do when formatting a number?
AFormats as currency with 3 decimals
BFormats as fixed-point with 3 decimals
CFormats as number with thousands separators
DFormats as percentage with 3 decimals
Explain how to format a number as currency and as a fixed-point number in C#.
Think about how money and precise decimals look.
You got /4 concepts.
    Describe the difference between the "D" and "d" date format specifiers in C#.
    One is detailed, the other is brief.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which format specifier in C# is used to display a number as currency with the correct symbol and two decimal places?
      decimal price = 123.456m;
      easy
      A. "N"
      B. "C"
      C. "P"
      D. "D"

      Solution

      1. Step 1: Understand currency format specifier

        The "C" format specifier converts a number to a currency string with the currency symbol and two decimals by default.
      2. Step 2: Compare other specifiers

        "N" formats as number with commas, "P" as percentage, "D" as decimal integer. Only "C" fits currency.
      3. Final Answer:

        "C" -> Option B
      4. Quick Check:

        Currency format = "C" [OK]
      Hint: Currency format specifier is always "C" [OK]
      Common Mistakes:
      • Using "N" which formats number with commas but no currency symbol
      • Using "P" which formats as percentage
      • Using "D" which is for integers only
      2. Which of the following is the correct syntax to format a DateTime variable date to show only the year as four digits in C#?
      easy
      A. date.ToString("yy")
      B. date.ToString("Year")
      C. date.ToString("YYYY")
      D. date.ToString("yyyy")

      Solution

      1. Step 1: Identify correct year format specifier

        In C#, "yyyy" outputs the full four-digit year, while "yy" outputs two digits.
      2. Step 2: Check case sensitivity and keywords

        "YYYY" is invalid (case sensitive), and "Year" is not a recognized format string.
      3. Final Answer:

        date.ToString("yyyy") -> Option D
      4. Quick Check:

        Year four-digit format = "yyyy" [OK]
      Hint: Use lowercase "yyyy" for full year, uppercase is invalid [OK]
      Common Mistakes:
      • Using uppercase "YYYY" which is invalid
      • Using "yy" which shows only two digits
      • Using non-format strings like "Year"
      3. What is the output of the following C# code?
      double value = 0.7567;
      string result = value.ToString("P1");
      Console.WriteLine(result);
      medium
      A. 75.7%
      B. 0.8%
      C. 0.76%
      D. 75.67%

      Solution

      1. Step 1: Understand "P1" format specifier

        "P" formats the number as a percentage by multiplying by 100 and adding "%". "1" means one decimal place.
      2. Step 2: Calculate output

        0.7567 * 100 = 75.67, rounded to one decimal place is 75.7, so output is "75.7%".
      3. Final Answer:

        75.7% -> Option A
      4. Quick Check:

        Percentage with 1 decimal = 75.7% [OK]
      Hint: Percentage multiplies by 100 and adds % [OK]
      Common Mistakes:
      • Not multiplying by 100 before formatting
      • Rounding incorrectly to 0.8%
      • Confusing decimal places with digits
      4. The following code produces unexpected output. What is the problem?
      DateTime dt = DateTime.Now;
      string formatted = dt.ToString("MM-dd-yyyyy");
      Console.WriteLine(formatted);
      medium
      A. Incorrect use of uppercase 'MM' for month
      B. Missing escape characters for dashes
      C. Too many 'y' characters in the format string
      D. DateTime cannot be formatted with ToString

      Solution

      1. Step 1: Check the format string for errors

        The format string uses "yyyyy" which causes the fifth 'y' to be treated as a literal 'y', producing unexpected output; year specifier should be 4 'y' characters for full year.
      2. Step 2: Validate other parts

        Dashes do not need escaping, "MM" is correct for month, and DateTime supports ToString formatting.
      3. Final Answer:

        Too many 'y' characters in the format string -> Option C
      4. Quick Check:

        Year format max 4 'y' characters [OK]
      Hint: Year format uses max 4 'y' characters [OK]
      Common Mistakes:
      • Thinking dashes need escaping
      • Believing ToString can't format DateTime
      • Confusing month format with day format
      5. You have a list of decimal prices and want to display each price formatted as currency with two decimals and a comma as thousand separator. Which code snippet correctly formats and prints the list?
      List<decimal> prices = new() { 1234.5m, 98765.432m, 12m };
      hard
      A. foreach(var p in prices) Console.WriteLine(p.ToString("C2"));
      B. foreach(var p in prices) Console.WriteLine(p.ToString("N"));
      C. foreach(var p in prices) Console.WriteLine(p.ToString("F"));
      D. foreach(var p in prices) Console.WriteLine(p.ToString("D2"));

      Solution

      1. Step 1: Understand required format

        We want currency format with two decimals and thousand separators. "C2" means currency with 2 decimals.
      2. Step 2: Check other format specifiers

        "N" is number with commas but no currency symbol, "F" is fixed-point without commas, "D2" is decimal integer with 2 digits (not for decimals).
      3. Final Answer:

        foreach(var p in prices) Console.WriteLine(p.ToString("C2")); -> Option A
      4. Quick Check:

        Currency with 2 decimals = "C2" [OK]
      Hint: Use "C2" for currency with 2 decimals and commas [OK]
      Common Mistakes:
      • Using "N" which lacks currency symbol
      • Using "F" which lacks thousand separators
      • Using "D2" which is for integers only
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard