J'ai classe représentant une unité de mesure avec un Decimal
comme numérique. Simplement pour simplifier les choses, disons que je représente des centimètres. Je voudrais implémenter une méthode ToString() pour cette classe. La chose est, si la valeur numérique est un nombre entier, je voudrais juste afficher la décimale comme un nombre entier. Sinon, j'aimerais le garder en décimal. Ainsi, par exemple, 10,5D centimètres s'afficheront comme "10,5 cm", mais les centimètres 7,0D devraient afficher comme "7cm". J'aimerais que ce soit rapide et simple à lire. J'ai une solution de travail, mais il semble qu'il devrait y avoir un meilleur moyen.Comment vérifier si une valeur décimale .NET est un nombre entier?
Voici un exemple montrant artificiel ma première fissure à elle:
Public Property Units As String = "cm"
Public Property NumericValue As Decimal = 10.5D
Public Overrides Function ToString()
Dim num As String = If(Me.NumericValue = Decimal.Ceiling(Me.NumericValue), _
Decimal.ToInt32(Me.NumericValue).ToString(), _
Me.NumericValue.ToString())
Return num + Me.Units
End Function
Je suis un peu mal à l'aise avec Me.NumericValue = Decimal.Ceiling(Me.NumericValue)
. Des idées sur comment faire mieux? Y at-il quelque chose que je pourrais faire avec String.Format ou une autre méthode sur la classe Decimal qui rendrait cela plus clair et le garderait performant?
C'est un exemple artificiel. Je suis en train d'analyser CSS à partir d'un document XHTML et d'écrire une classe qui représente les valeurs numériques avec des unités comme px, em, cm, in,%, etc. Donc oui, je veux 7cm, pas 7.0cm. – mattmc3