 Prologue
 Double
 Float
 Similarities
 Difference
 When to use double and float in Java?
 Summary
 Reference
Prologue

Java에서 소수점을 표현하는 대표적인 자료형으로 Double과 Float가 있다.
2개의 차이에 대해 알아보자 !
Double

A double data type is more precise than float.
float보다 정확할 뿐 100% 정확하다는 건 아니다.

A double variable can provide precision up to 15 to 16 decimal points
Float

By default
floatingpoint numbers are double in Java.

If you want to store them into the float variable
you need to either cast them or use a suffix ‘f’ or ‘F’ as shown in our example.
public static final float PIE = 3.14; // compile time error
// Use cast
public static final float PIE = (float) 3.14;
// Use suffix 'f' or 'F'
public static final float PIE = 3.14f;
public static final float GRAVITY = 9.8F;
 A float variable can provide precision up to 6 to 7 decimal points
Similarities

Both double and float are approximate types
they are not precise.

You should use logical operator
e.g. > or < to compare both float and double variables
instead of = and != because they are not precise.
Difference

Precision Decimal Points
–> double : 15 ~ 16
–> float : 6 ~ 7

Storage Requirement
–> double is more expensive than float.
It takes 8 bytes to store a variable while float just takes 4 bytes.
This means if memory is constraint than its better to use float than double.
By the way, the double type also has a larger range than float
and if your numbers don't fit well in float then you have to use double in Java.

Range
–> double has a higher range than float
–> because it got more bits to store data.
When to use double and float in Java?

Though both are approximate types
If you need more precise and accurate results then use double.

Use float if you have memory constraint
because it takes almost half as much space as double.

Though be careful with floatingpoint calculation and representation
don’t use double or float for monetary calculation, instead use BigDecimal.

= double과 float를 사용하면
부동 소수점 계산 및 표현을 하는 데 있어서 조심해야 하니
통화 계산에는 BigDecimal을 사용하자 !
Summary

Remember floatingpoint numbers are double in Java

double is more accurate then float
= double is more expensive then float

통화 계산에는 double과 float 대신
BigDecimal을 사용하자 !