我想把一个字符串转换成一个双精度型,然后对它做一些数学运算,然后再把它转换回一个字符串。
我如何在Objective-C中做到这一点?
有没有办法把一个双精度数也舍入到最接近的整数?
发布于 2008-10-04 07:45:09
您可以使用以下命令将NSString转换为double
double myDouble = [myString doubleValue];
然后,四舍五入到最接近的整数可以如下所示
int myInt = (int)(myDouble + (myDouble>0 ? 0.5 : -0.5))
老实说,我不确定有没有比这更简单的转换回字符串的方法
NSString* myNewString = [NSString stringWithFormat:@"%d", myInt];
发布于 2008-10-04 19:10:32
要真正正确地将字符串转换为数字,需要使用为读取字符串的区域设置配置的NSNumberFormatter
实例。
不同的区域设置会有不同的数字格式。例如,在世界上的一些地方,COMMA
被用作小数点分隔符,而在另一些地方,它是PERIOD
- and,千位分隔符(在使用时)被颠倒过来。除非它是一个空格。或者根本不存在。
这真的取决于输入的来源。最安全的做法是根据输入的格式配置NSNumberFormatter
,并使用-[NSFormatter numberFromString:]
从其中获取NSNumber
。如果你想处理转换错误,你可以使用-[NSFormatter getObjectValue:forString:range:error:]
。
发布于 2008-10-04 17:37:56
除了olliej的答案之外,你还可以用NSNumber
的stringValue
将整型值转换回字符串
[[NSNumber numberWithInt:myInt] stringValue]
NSNumber
上的stringValue
调用descriptionWithLocale:nil
,为您提供值的本地化字符串表示。我不确定[NSString stringWithFormat:@"%d",myInt]
是否会给你一个适当本地化的myInt
表示。
https://stackoverflow.com/questions/169925
复制相似问题