2017-08-07 1 views
-11

Je travaille certains types de données de base. J'ai besoin de trouver les types de données d'entrée utilisateur.C# int.TryParse et float.TryParse à la fois la valeur négative analysée et retourné vrai

Chaque fois que j'utilise int.TryParse et float.TryParse à la fois analyser la valeur négative et retourné vrai.

Ceci est un bug? ou c'est la fonctionnalité de base que je ne connaissais pas.

+3

Ils permettent des valeurs négatives. – doctorlove

+4

Si cela n'est pas prévu, essayez d'utiliser la version miroir avec le type uint - 'uint.TryParse()'. –

Répondre

1

Non, ce n'est pas un bogue. Les deux et float types de données can hold negative values, de sorte que l'analyse d'une valeur négative peut renvoyer vrai.

+1

Il peut * être * une réponse à la question, mais il était très peu clair comment il a été présenté à l'origine. Plusieurs utilisateurs ont soulevé un drapeau sur les problèmes de qualité de cette réponse. J'ai rejeté ces drapeaux et édité votre réponse à ce qu'elle aurait probablement dû ressembler en premier lieu, de sorte qu'il se rapporte plus évidemment à la question. J'espère que cela satisfera tout le monde, et vous pouvez l'utiliser comme un modèle pour les réponses futures. –

+0

Merci beaucoup, je ferai de mon mieux – Noren

1

si vous regardez la documentation float il est dit:

Le type float peut représenter des valeurs allant d'environ 1,5 x 10-45 à 3,4 × 1038 avec une précision de 7 chiffres.

regardant la documentation int vous dit:

Le type int représente des entiers signés 32 bits avec des valeurs comprises entre -2147483648 et 2147483647.

qui signifie qu'il est definetely possible d'analyser un nombre négatif dans cette plage avec les méthodes TryParse correspondantes. Ce n'est pas un bug.

wheras l'alias entier non signé uint:

Le type uint représente des nombres entiers non signés de 32 bits avec des valeurs comprises entre 0 et 4294967295.

uint res; 
bool b = uint.TryParse("-7", out res); 

se traduira par une false. puisque la valeur est en dehors de la plage