Най-просто – float закръгля, защото няма зададена прецизност, както decimal и обикновено съдържа безкрайни дроби.
При decimal се знае, че 0.333 е точно 0.333, a не 0.33333333333…∞ закръглено до 0.333333334, или отрязано до някъде.
Затова decimal е най-пододящ например за съхраняване на парични суми.
Float is Approximate-number data type, which means that not all values in the data type range can be represented exactly , it round up the values.
Where as Decimal is Fixed-Precision data type, which means that all the values in the data type range can be represented exactly with precision and scale, it doesn’t round up the values.
Use decimal for counted values
Use float/double for measured values
Some examples:
- money (do we count money or measure money?)
- distance (do we count distance or measure distance?)
- scores (do we count scores or measure scores?)
We always count money and should never measure it. We usually measure distance. We often count scores.
Float се използва за сухраняване на стойности, които могат да бъдат закръглени поради това, че точната им стойност може и да не е ясна.
Decimal – обратното, трябва да знаем точно стойността, без закръгляне, без „отрязване“. С конкретна точност.