iOS是将以字符串形式输入的float转换为long的最佳方法

时间:2013-11-06 10:46:02

标签: ios objective-c nsstring

我需要从一个非常大的浮点值的UITextEdit中取一个字符串并将其转换为long,以便我可以在计算中使用它。我尝试过使用double,但是它们不够大,所以我希望将字符串转换为long。输入的值将始终只有2位小数。

任何帮助都会很棒。

由于

3 个答案:

答案 0 :(得分:1)

以下是将字符串转换为long long int,将long long int转换为字符串;

的示例
// Converting string to long long int
NSString *text = @"12345678998765";
long long int num = [text longLongValue];

// Converting back to string
NSString *backToString = [@(num) stringValue];

答案 1 :(得分:0)

您可以使用NSString方法longLongValuestring转换为long

NSString *text = @"Your long number string";
long longNum = (long) [ text longLongValue];
NSLog(@"num = %ld", num);

or 

NSNumberFormatter * numFormatter = [[NSNumberFormatter alloc] init];
[numFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber *num = [numFormatter numberFromString:text];
NSLog(@"long Number: %llu", [num longLongValue]); 

答案 2 :(得分:0)

由于该数字最多只能包含2位小数,因此您可以存储长度等于100 *的数字。如果数字ALWAYS有2位小数(即使它们都是0),那么你可以做类似的事情:

NSString *text = @"934968.34";
text = [text stringByReplacingOccurencesOfString:@"." withString:@""];
long long number = [text longLongValue];

您还可以为只有1个小数的情况添加一些代码(当检测到这种情况时,最后应该有数字=数字* 10)或者没有(在这种情况下,数字=数字* 100)