Comment puis-je obtenir le nombre après la virgule décimale dans la VB.NET
Quelqu'un peut-il me donner un moyen facile de découvrir les chiffres après le point décimal de la double?
Tout ce que je besoin de faire est de savoir si le nombre se termine par 0, comme 1.0 ou 10.0 ou 323.0 ?
Avez-vous une idée à ce sujet?
- bien que le nombre en question est peut-être 10.04 par exemple, auquel cas il ne marche pas intérêt de me .... 0 après le point
- êtes-vous dit essentiellement que vous voulez savoir si le double est un nombre entier ou pas?
- c'est exact et souhaitez retourner alors que le numéro de la chaîne. COMME IL A ÉTÉ ENTRÉ
- La droite. Si vous êtes à la recherche lors de la saisie de données alors vous avez probablement une chaîne de caractères. Il suffit d'enregistrer une chaîne et d'utiliser les contrôles mentionnés ci-dessous et si son ensemble de nunmber renvoyer la chaîne. Je ne suis pas sûr de savoir pourquoi vous voulez faire cela. Habituellement, vous voulez afficher un standard nombre de décimales pour tous les nombres (par exemple
ToString("N2")
) ou vous souhaitez retourner le nombre dans sa forme la plus simple (quiToString()
je pense que le fait habituellement). Vous voulez probablement modifier la question ci-dessus afin d'être plus clair sur ce que vous commencez à vous et ce que vous voulez obtenir.
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez l'un des types de données numériques (par exemple, double, simple, entier, décimal), vous ne pouvez pas représenter 10.0 et 10 que deux valeurs distinctes. Il n'y a aucun moyen de le faire. Si vous avez besoin de garder la mantisse du nombre, même quand il est à zéro, vous aurez à stocker la valeur comme un autre type de données, par exemple une chaîne.
Pour valider une chaîne qui a été entré, vous pourriez faire quelque chose comme ceci:
Voulez-vous dire quelque chose comme:
? Notez que généralement binaire arithmétique à virgule flottante, vous voulez avoir une sorte de tolérance, de sorte que 10.000001 été traitée "comme assez proche de 10". Par exemple:
Math.Floor(-10.00000001)
est-11
parce qu'elle a toujours arrondi vers le bas...System.Double
.double
- et si vous voulez les traiter différemment des autres, vous ne devriez pas être à l'aide dedouble
pour commencer. Ce sont ces valeurs censés représenter? Peut-être vous devriez être en utilisantdecimal
.double
puis ils ont clairement est nécessairement des nombres (ou des valeurs NaN, je suppose). Ce n'est pas comme ils peuvent être n'importe quoi d'autre.double
. Si vous voulez vous distinguer, vous ne pouvez pas utiliser la double. Cela peut signifier que vous avez une conception fondamentale de problème, bien sûr...Suffit d'utiliser la
Mod
opérateur, comme suit:(voir http://en.wikibooks.org/wiki/Visual_Basic_.NET/Arithmetic_operators)
Ce que vous devez faire est de multiplier par 10 et puis mod 10.
Par exemple. disons x = 10.2
temp = x * 10 ' temp est égal à 102
temp = temp % 10 ' qui devrait retourner le 2. Temp est maintenant la valeur de la virgule dont vous avez besoin.
Cela devrait fonctionner pour les valeurs négatives ainsi.
Si vous avez besoin de comparer pour voir si c'est un 0, tout ce que vous faire est de comparer votre temp var à 0.
Essayer cette fonction:
Il vous donnera le nombre de décimales que vous recherchez.
L'utiliser de cette façon:
Si votre entrée est une chaîne, et que vous souhaitez identifier les chaînes de décimales, mais lorsque ces décimales sont toutes à zéro, alors vous pouvez utiliser une expression régulière:
Ici est quelque chose que vous pouvez essayer. La conversion de la double int supprime la virgule. Ensuite, vous pouvez faire un Mod opération sur le même numéro de la reste égal à ce qui est dans la décimale.
Il a été un moment, néanmoins ma solution:
J'ai aussi utilisé la fonction mod, mais vous devez être prudent avec ce qu'il y a de la précision des "problèmes" avec les données de type "Double":
Donc j'ai écrit cette fonction: (exemple: nombre = 1.25)
dès les deux valeurs correspondent (c'est à dire: 25 = 25) je retourner ma valeur décimale à l'aide de remVal et multiplicateur