web-dev-qa-db-ja.com

NSStringをlong値に変換するにはどうすればよいですか?

値は1つです100023と私はNSStringに入れました。

ここで、長いパラメータータイプを含むWebサービスにこの値を渡して、文字列値を長い値に変換する方法を説明します。

29
Ankit Vyas

NSStringメソッドintValuelongLongValueを使用できます。

56
YPK

この「100023」のような小さな数値の場合、これは「longlongvalue」で許容されます。ただし、数値の桁数が10を超える場合、長い値の使用例と見なされます。次に、次のようなこの問題に遭遇します。

String value "86200054340607012013"

行う

@"86200054340607012013" integerValue or intValue 

これはprintステートメントで生成されます

2147483647 

もしあなたがそうするなら

@"86200054340607012013" longlongvalue

これはprintステートメントで生成されます

9223372036854775807

これは私にとってはうまくいき、予想される数を出力します。

NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber * myNumber = [f numberFromString:@"2394739287439284734723"];
NSLog(@"longlong: %llu", [myNumber longLongValue]);   
23
Kevin

これを使って:

    yourLong = [yourString longLongValue];
13

doubleValueメソッドを使用して、精度の警告が失われないようにすることができます

2
Chuy47

答えは:

float floatId = [strID floatValue];
0
momomo