iPhone:四舍五入双值
我有一些双值,35.44,35.66。我需要把它们四舍五入,结果应该是NSNumber。结果应该是35.4,35.7。那怎么做呢?同样,结果应该是NSNumber,而不是NSString 乘以10,使用舍入函数去除小数点,然后除以10。乘以10,使用舍入函数去除小数点,然后除以10。您可以将其打印为字符串,并使用格式字符串将其剪切到一个小数点iPhone:四舍五入双值,iphone,Iphone,我有一些双值,35.44,35.66。我需要把它们四舍五入,结果应该是NSNumber。结果应该是35.4,35.7。那怎么做呢?同样,结果应该是NSNumber,而不是NSString 乘以10,使用舍入函数去除小数点,然后除以10。乘以10,使用舍入函数去除小数点,然后除以10。您可以将其打印为字符串,并使用格式字符串将其剪切到一个小数点 NSString *stringRepresentation = [NSString stringWithFormat:@"%.1f", myDouble
NSString *stringRepresentation = [NSString stringWithFormat:@"%.1f", myDouble];
NSNumber *number = [NSNumber numberWithDouble:[stringRepresentation doubleValue]];
您可以将其打印为字符串,并使用格式字符串将其剪切到小数点后一位
NSString *stringRepresentation = [NSString stringWithFormat:@"%.1f", myDouble];
NSNumber *number = [NSNumber numberWithDouble:[stringRepresentation doubleValue]];
或
编辑:
我误解了原来的问题,以为你想把一个double作为整数值存储在一个nsnumber中
要回答正确的问题,另一个选项是过渡int:
double myDouble = 1.23;
int myInt = myDouble * 10;
myDouble = (double)myInt ;
myDouble /= 10;
NSNumber *myNumber = [NSNumber numberWithDouble:myDouble];
不过,您最好将double存储在NSNumber中,并在以后检索时将其舍入
编辑2:
更精简的版本将是:
double myDouble = 1.23;
myDouble = (int)(myDouble * 10);
NSNumber *myNumber = [NSNumber numberWithDouble:myDouble/10];
最好不要创建临时nsstring。。。伊姆霍
或
编辑:
我误解了原来的问题,以为你想把一个double作为整数值存储在一个nsnumber中
要回答正确的问题,另一个选项是过渡int:
double myDouble = 1.23;
int myInt = myDouble * 10;
myDouble = (double)myInt ;
myDouble /= 10;
NSNumber *myNumber = [NSNumber numberWithDouble:myDouble];
不过,您最好将double存储在NSNumber中,并在以后检索时将其舍入
编辑2:
更精简的版本将是:
double myDouble = 1.23;
myDouble = (int)(myDouble * 10);
NSNumber *myNumber = [NSNumber numberWithDouble:myDouble/10];
最好不要创建临时nsstring。。。imho如果
(double)myInt
大于MAXINT
,会发生什么?不知怎的,我想你知道答案;)好电话。操作,确保目标设备上的int小于maxint。然而,OP给出的双值对于这种方法来说是很好的。如果(double)myInt
大于MAXINT
,会发生什么?不知怎的,我想你知道答案;)好电话。操作,确保目标设备上的int小于maxint。然而,OP给出的双值适用于这种方法。