decimal
n'est pas magique, faire toutes les maths pour moi type. C'est toujours un nombre à virgule flottante - la principale différence de float
, c'est que c'est un décimal à virgule flottante nombre, plutôt que binaire. Donc, vous pouvez facilement représenter 0.3
comme un nombre décimal (il est impossible qu'un nombre fini de nombres binaires), mais vous n'avez pas de précision infinie.
Cela rend le travail beaucoup plus proche d'un homme de faire les mêmes calculs, mais vous avez encore à imaginer quelqu'un qui fait de chaque opération individuelle. Il est conçu spécialement pour les calculs financiers, où vous ne faites pas le genre de chose que vous faites en Maths - vous simplement aller étape par étape, l'arrondissement chaque résultat en fonction jolie règles spécifiques.
En fait, pour de nombreux cas, decimal
pourrait fonctionner bien pire que float
(ou mieux, double
). C'est parce qu' decimal
ne fait pas arrondi automatique à tous. Faire de même avec double
vous donne 22 comme prévu, parce que c'est automatiquement supposer que la différence n'a pas d'importance - en decimal
, il n' - c'est l'un des points importants de la decimal
. Vous pouvez émuler ce par l'insertion, manuel Math.Round
s, bien sûr, mais il ne fait pas beaucoup de sens.