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

Floating point types (float, double, decimal) in C Sharp (C#) - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the difference between float, double, and decimal in C#?

float is a 32-bit floating point type, double is 64-bit, and decimal is 128-bit with higher precision for financial calculations.

float and double are binary floating point types, while decimal is a decimal floating point type, reducing rounding errors in money calculations.

Click to reveal answer
beginner
How do you declare a float variable with the value 3.14 in C#?

You write: float pi = 3.14f;

The f suffix tells the compiler this is a float literal, not a double.

Click to reveal answer
intermediate
Why is decimal preferred for financial calculations over float or double?

decimal has higher precision and uses base-10 representation, which reduces rounding errors common in binary floating point types like float and double.

This makes decimal better for money where exact decimal values matter.

Click to reveal answer
beginner
What is the default floating point type for literals like 3.14 in C#?

The default type is double.

If you want a float, you must add f or F suffix, and for decimal, use m or M.

Click to reveal answer
intermediate
What happens if you assign a double value to a float variable without casting?

The compiler will give an error because double has more precision and size than float.

You must explicitly cast it like float f = (float)myDouble; to avoid errors.

Click to reveal answer
Which floating point type in C# has the highest precision?
Adecimal
Bdouble
Cfloat
Dint
What suffix do you use to declare a float literal in C#?
Af
Bd
Cm
Dl
What is the default type of the literal 5.0 in C#?
Afloat
Bdouble
Cdecimal
Dint
Which type is best for money calculations to avoid rounding errors?
Afloat
Bdouble
Cdecimal
Dlong
What must you do to assign a double value to a float variable?
ANothing, it works automatically
BUse suffix 'd' on the float variable
CUse suffix 'f' on the double value
DUse explicit cast like (float)
Explain the differences between float, double, and decimal types in C# and when to use each.
Think about precision and typical scenarios like graphics, science, and money.
You got /4 concepts.
    Describe how to correctly declare and assign floating point literals in C# for each type.
    Remember the suffixes and what happens if you omit them.
    You got /3 concepts.

      Practice

      (1/5)
      1.

      Which C# type is best to store money values accurately?

      easy
      A. float
      B. int
      C. double
      D. decimal

      Solution

      1. Step 1: Understand precision needs for money

        Money values require high precision and no rounding errors.
      2. Step 2: Compare types for precision

        decimal type provides high precision and is designed for financial calculations.
      3. Final Answer:

        decimal -> Option D
      4. Quick Check:

        Money uses decimal for accuracy [OK]
      Hint: Use decimal for money to avoid rounding errors [OK]
      Common Mistakes:
      • Choosing float or double for money causes precision loss
      • Using int for decimal values
      • Forgetting to add 'm' suffix for decimal literals
      2.

      Which of the following is the correct way to declare a float variable with value 3.14?

      ?
      easy
      A. float pi = 3.14m;
      B. float pi = 3.14;
      C. float pi = 3.14f;
      D. float pi = 3.14d;

      Solution

      1. Step 1: Recall float literal syntax

        Float literals require an 'f' suffix to specify the type explicitly.
      2. Step 2: Check each option

        float pi = 3.14f; uses 3.14f which is correct. float pi = 3.14; lacks suffix, so treated as double. float pi = 3.14m; uses 'm' for decimal, wrong type. float pi = 3.14d; assigns double literal to float, compilation error.
      3. Final Answer:

        float pi = 3.14f; -> Option C
      4. Quick Check:

        Float literals need 'f' suffix [OK]
      Hint: Add 'f' suffix for float literals [OK]
      Common Mistakes:
      • Omitting 'f' suffix causes errors
      • Using 'm' suffix for float
      • Assigning double literal directly to float
      3.

      What is the output of this C# code?

      float a = 0.1f;
      double b = 0.1;
      Console.WriteLine(a == b);
      medium
      A. False
      B. Compilation error
      C. True
      D. Runtime exception

      Solution

      1. Step 1: Understand operator restrictions

        C# allows comparison between float and double by promoting float to double.
      2. Step 2: Evaluate the comparison

        float a = 0.1f is less precise than double b = 0.1, so when promoted to double, a != b due to precision differences.
      3. Final Answer:

        False -> Option A
      4. Quick Check:

        float 0.1f != double 0.1 due to precision [OK]
      Hint: Comparing float and double can yield false due to precision differences [OK]
      Common Mistakes:
      • Assuming float equals double for same number
      • Thinking it causes compilation error
      • Expecting runtime exception
      4.

      Identify the error in this code snippet:

      decimal price = 19.99m;
      float discount = 0.1f;
      decimal finalPrice = price - discount;
      medium
      A. Cannot subtract float from decimal directly
      B. Cannot assign double literal to decimal without suffix
      C. Missing 'f' suffix on float literal
      D. No error, code is correct

      Solution

      1. Step 1: Check literal suffixes

        decimal uses 19.99m (correct 'm' suffix), float uses 0.1f (correct).
      2. Step 2: Check operation between decimal and float

        Subtracting float from decimal is invalid without explicit conversion.
      3. Final Answer:

        Cannot subtract float from decimal directly -> Option A
      4. Quick Check:

        decimal and float arithmetic needs explicit casts [OK]
      Hint: decimal and float can't mix in math without cast [OK]
      Common Mistakes:
      • Ignoring type mismatch in arithmetic
      • Forgetting 'm' suffix for decimal literals
      • Assuming implicit conversion between float and decimal
      5.

      You want to store the value 123.4567890123456789 with the highest precision possible in C#. Which type should you choose and how should you write the literal?

      hard
      A. Use float and write 123.4567890123456789f
      B. Use decimal and write 123.4567890123456789m
      C. Use double and write 123.4567890123456789d
      D. Use double and write 123.4567890123456789

      Solution

      1. Step 1: Understand precision limits of types

        float has ~7 digits precision, double ~15-17 digits, decimal ~28-29 digits.
      2. Step 2: Choose type and literal suffix

        decimal provides highest precision and requires 'm' suffix for literals.
      3. Final Answer:

        Use decimal and write 123.4567890123456789m -> Option B
      4. Quick Check:

        decimal + 'm' suffix = highest precision [OK]
      Hint: decimal with 'm' suffix stores highest precision decimals [OK]
      Common Mistakes:
      • Using float or double for high precision
      • Omitting 'm' suffix for decimal literals
      • Assuming double is more precise than decimal
      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