iPhone:圆形双倍价值

时间:2012-01-18 15:36:20

标签: iphone

我有一些双重值...... 35.44,35.66。我需要围绕它们,结果应该是NSNumber。结果应该是35.4,35.7。那怎么办呢?再一次,结果应该是NSNumber,而不是NSString!

3 个答案:

答案 0 :(得分:3)

您可以将其打印到字符串并使用格式字符串将其剪切为一个小数点。

NSString *stringRepresentation = [NSString stringWithFormat:@"%.1f", myDouble];
NSNumber *number = [NSNumber numberWithDouble:[stringRepresentation doubleValue]];

答案 1 :(得分:0)

乘以10,使用舍入函数去除小数,然后除以10。

答案 2 :(得分:0)

NSNumber *myNumber = [NSNumber numberWithInt:myDouble];

NSNumber *myNumber = [NSNumber numberWithInt:(int)myDouble];

编辑: 我误读了原来的问题,并认为你想在nsnumber中存储一个double作为整数值。

所以为了回答正确的问题,另一个选择是临时性的:

double myDouble = 1.23;
int myInt = myDouble * 10;
myDouble = (double)myInt ;
myDouble /= 10; 
NSNumber *myNumber = [NSNumber numberWithDouble:myDouble];

你可能最好只将双重存储在NSNumber中,然后在以后检索时将其四舍五入。

编辑2:

更精简的版本将是:

double myDouble = 1.23;
myDouble = (int)(myDouble * 10);
NSNumber *myNumber = [NSNumber numberWithDouble:myDouble/10];

最好不要创建一个临时的nsstring ... imho