私はいくつかの基本的なデータ型を扱っています。 私はユーザー入力データ型を見つける必要があります。C#int.TryParseとfloat.TryParseの両方が負の値を解析してtrueを返しました
私がint.TryParseとfloat.TryParseを使うときはいつでも、負の値を解析してtrueを返します。
これはバグですか?これは私が気付いていない基本的な機能です。
私はいくつかの基本的なデータ型を扱っています。 私はユーザー入力データ型を見つける必要があります。C#int.TryParseとfloat.TryParseの両方が負の値を解析してtrueを返しました
私がint.TryParseとfloat.TryParseを使うときはいつでも、負の値を解析してtrueを返します。
これはバグですか?これは私が気付いていない基本的な機能です。
いいえ、これはバグではありません。 int
とfloat
のデータ型は両方ともcan hold negative valuesなので、負の値を解析するとtrueが返されます。
これは疑問に答えることはできますが、それが最初に提示された方法は非常に不明でした。いくつかのユーザーがこの回答の品質問題に関する旗を掲げました。私はそれらのフラグを却下し、おそらく最初のように見えるはずのものへのあなたの答えを編集しました。それはより明らかに質問に関係しています。うまくいけば、それは皆を満足させるでしょう、そして、あなたは将来の答えのモデルとしてこれを使うことができます。 –
多くのありがとう、私は私のベストを尽くす – Noren
あなたがfloatのドキュメントを見れば、それは言う:
float
タイプは、7桁の精度で1038×約1.5×10-45から3.4までの範囲の値を表すことができます。 intのドキュメントを見て
を示しています:
int
タイプは、それがdefinetelyであることを意味している-2147483648〜2147483647
間の値を持つ符号付き32ビット整数を表し、対応するTryParse
メソッドでこの範囲内の負の数を解析することが可能です。これはバグではありません。
UINT型が0と4294967295
uint res;
bool b = uint.TryParse("-7", out res);
間の値を持つ符号なし32ビット整数false
もたらす表す:符号なし整数別名uint
wheras
。値が範囲外であるため
これらは負の値を許可します。 – doctorlove
これが意図されていない場合は、uintタイプ - 'uint.TryParse()'でミラー化されたバージョンを使用してみてください。 –