我有一些双重值...... 35.44,35.66。我需要围绕它们,结果应该是NSNumber。结果应该是35.4,35.7。那怎么办呢?再一次,结果应该是NSNumber,而不是NSString!
答案 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