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

Floating point types (float, double, decimal) in C Sharp (C#) - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Floating Point Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of floating point addition with float and double
What is the output of this C# code snippet?
C Sharp (C#)
float a = 0.1f;
double b = 0.1;
Console.WriteLine(a == b);
ATrue
BRuntime exception
CFalse
DCompilation error
Attempts:
2 left
💡 Hint
Consider how float and double represent decimal numbers differently.
❓ Predict Output
intermediate
2:00remaining
Decimal precision in financial calculation
What is the output of this C# code?
C Sharp (C#)
decimal price = 19.99m;
decimal quantity = 3m;
decimal total = price * quantity;
Console.WriteLine(total);
A59.969999999999999
B59.97
C60
DCompilation error
Attempts:
2 left
💡 Hint
Decimal type is designed for exact decimal representation.
❓ Predict Output
advanced
2:00remaining
Result of mixed type arithmetic with float, double, and decimal
What is the output of this C# code?
C Sharp (C#)
float f = 1.5f;
double d = 2.5;
decimal m = 3.5m;
var result = f + (float)d;
Console.WriteLine(result);
A4
B3.9999998
C4.0
DCompilation error
Attempts:
2 left
💡 Hint
Consider whether these values are exactly representable in float precision.
❓ Predict Output
advanced
2:00remaining
Effect of floating point precision on equality check
What does this C# code print?
C Sharp (C#)
double x = 0.1 + 0.2;
bool equal = x == 0.3;
Console.WriteLine(equal);
ARuntime exception
BTrue
CCompilation error
DFalse
Attempts:
2 left
💡 Hint
Floating point addition can introduce small errors.
🧠 Conceptual
expert
2:00remaining
Choosing the correct floating point type for currency calculations
Which floating point type should you use in C# for precise currency calculations to avoid rounding errors?
Adecimal
Bdouble
Cfloat
Dint
Attempts:
2 left
💡 Hint
Think about which type stores decimal numbers exactly without binary rounding errors.

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