Comment puis-je comparer si BigDecimal
est supérieure à zéro ?
Un mot d'avertissement supplémentaire s'impose. Supposons que value
a une valeur de zéro mais une échelle non nulle (par exemple, il évalue à 0.00
au lieu de 0
). Vous voulez probablement considérer qu'elle est égale à zéro. Le site compareTo()
le fera en effet. Mais le equals()
ne le fera pas. (Une autre preuve, s'il en fallait une, que Loki ou l'un de ses avatars est bien vivant et s'est reconverti dans le développement de logiciels).
1 votes
Examinez github.com/mortezaadi/bigdecimal-utils Il existe une méthode isPositive() et d'autres méthodes comme is(bigdecimal).isZero() ; is(bigdecimal).notZero() ; is(bigdecimal).isPositive() ; // supérieur à zéro is(bigdecimal).isNegative() ; // inférieur à zéro is(bigdecimal).isNonPositive() ; // inférieur ou égal à zéro is(bigdecimal).isNonNegative() ;
0 votes
@MortezaAdi depuis
BigDecimal
met en œuvreComparable
les fonctions de comparaison commelt, le, eq, ne
doit être déplacée vers unComparableUtils
. Ils peuvent donc être utilisés pour toute autre classe commeDate
ou des types personnalisés.0 votes
@djmj les exigences définissent l'implémentation, il n'y avait ni besoin ni intention de construire ComparableUtils. De plus, la fonctionnalité de lt, le, eq, etc. est totalement différente de la fonctionnalité générique.