Objective c 如何计算包含格式化十进制数的字符串的长度
我试图计算一个Objective c 如何计算包含格式化十进制数的字符串的长度,objective-c,nsstring,nsformatter,Objective C,Nsstring,Nsformatter,我试图计算一个NSString中的字符数,该字符串是用十进制数字进行本地化格式化的 使用下面的代码,我在英国本地化中获得了正确的长度。但是如果我尝试一种法语区域格式,它会出错,其中千位分隔符是一个空格,小数点是一个逗号 有人能就正确的方法提出建议吗 下面是应该给出字符数的位: -(NSString*)setFormatLength:(double)result; { NSNumber* aNumber = [NSNumber numberWithDouble:result ];
NSString
中的字符数,该字符串是用十进制数字进行本地化格式化的
使用下面的代码,我在英国本地化中获得了正确的长度。但是如果我尝试一种法语区域格式,它会出错,其中千位分隔符是一个空格,小数点是一个逗号
有人能就正确的方法提出建议吗
下面是应该给出字符数的位:
-(NSString*)setFormatLength:(double)result;
{
NSNumber* aNumber = [NSNumber numberWithDouble:result ];
NSString* lengthcalc =[unformatter stringFromNumber: aNumber] ;
int lnth = lengthcalc.length;
NSLog(@" length %d",lnth);
if(lnth == 15)
{
//do something
}
else
{
// do something else
}
return displayresult;
事情是这样的:
unformatter = [[NSNumberFormatter alloc] init];
[unformatter setFormatterBehavior:NSNumberFormatterBehaviorDefault];
[unformatter setLocale:[NSLocale currentLocale]];
[unformatter setNumberStyle: NSNumberFormatterDecimalStyle];
[unformatter setAlwaysShowsDecimalSeparator:NO];
“它搞砸了”是什么意思?
lengthcalc.length
不返回字符串中的字符数吗?为什么15在这里是一个神奇的数字?是的,我想这里对你所说的“长度”的含义有些困惑。也许可以更新你的问题?字符串中的位数?或字符串的实际字符长度?很抱歉造成混淆。我正在尝试确定字符串长度计算中有多少位数字,包括,或之类的符号。表示分组和小数分隔符。其目的是根据字符串中的位数以不同的方式显示输出。我的nsnumber可能是1234579.12345678在这种情况下,长度将大于15位,因此我将使用科学格式对其进行格式化以显示,但如果数字为123.456,则我将以不同的方式显示。我的问题是,从未格式化事件返回的字符串不包含预期的位数。例如,nsnumber是115746.4030778547,但返回的字符串是115746403,因此lnth是10,这不是我所期望的-我希望将17视为lnth