Iphone 从双精度数组的整数和小数部分提取数字

Iphone 从双精度数组的整数和小数部分提取数字,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,我想知道使用Cocoa Touch(需要在iPhone上运行)从Objective中的double中提取数字的最优雅方法是什么: 假设你有一张双人票:1.423 你如何得到每个“1”、“4”、“2”、“3”,它们构成了多个变量中的双精度 最后,我想得到如下结果: NSLog(@“以下是数字:%d,%d%d%d”,一、二、三、四) 一个变量应该是1 两个变量应该是4 三个变量应该是2 四个变量应该是3 使用ObjectiveC/cocoa Touch以一种好的方式实现这一点,有什么建议吗 谢谢

我想知道使用Cocoa Touch(需要在iPhone上运行)从Objective中的double中提取数字的最优雅方法是什么:

假设你有一张双人票:1.423

你如何得到每个“1”、“4”、“2”、“3”,它们构成了多个变量中的双精度

最后,我想得到如下结果: NSLog(@“以下是数字:%d,%d%d%d”,一、二、三、四)

一个变量应该是1

两个变量应该是4

三个变量应该是2

四个变量应该是3

使用ObjectiveC/cocoa Touch以一种好的方式实现这一点,有什么建议吗


谢谢。

我会将其转换为字符串(使用
+[nsstringwithformat:
),然后使用
rangeOfCharactersInSet:
NSScanner
将其转换为字符串(使用
+[nsstringwithformat:
)然后用
rangeOfCharactersInSet:
NSScanner

扫描出这些数字,这是我很快为你准备的东西

NSLog(@"here are the digits : %d , %d %d %d ", one, two, three, four);
然后在代码中执行以下操作:

@interface NSNumber (DigitParsing)

- (NSArray *)arrayOfStringDigits;

@end

@implementation NSNumber (DigitParsing)

- (NSArray *)arrayOfStringDigits {
    NSString *stringNumber = [self stringValue];
    NSMutableArray *digits = [NSMutableArray arrayWithCapacity:[stringNumber length]];
    const char *cstring = [stringNumber cStringUsingEncoding:NSASCIIStringEncoding];
    while (*cstring) {
        if (isdigit(*cstring)) {
            [digits addObject:[NSString stringWithFormat:@"%c", *cstring]];
        }
        cstring++;
    }
    return digits;
}

@end

这是我很快为你准备的东西

NSLog(@"here are the digits : %d , %d %d %d ", one, two, three, four);
然后在代码中执行以下操作:

@interface NSNumber (DigitParsing)

- (NSArray *)arrayOfStringDigits;

@end

@implementation NSNumber (DigitParsing)

- (NSArray *)arrayOfStringDigits {
    NSString *stringNumber = [self stringValue];
    NSMutableArray *digits = [NSMutableArray arrayWithCapacity:[stringNumber length]];
    const char *cstring = [stringNumber cStringUsingEncoding:NSASCIIStringEncoding];
    while (*cstring) {
        if (isdigit(*cstring)) {
            [digits addObject:[NSString stringWithFormat:@"%c", *cstring]];
        }
        cstring++;
    }
    return digits;
}

@end

14.6566=“14.6.5 6”
<代码>2.0=
NaN=
???????14.6566=“14.6 5 6”=>是2.0=“2”“0”NaN=不重要。
14.6566=“14.6 5 6”
<代码>2.0=
NaN=
???????14.6566=“14.6 5 6”=>是2.0=“2”“0”NaN=不重要。您好,感谢您抽出时间与我们分享。我不知道isdigit是一个标准的C函数,对吗我会试试的谢谢!这对你有用吗?如果是的话,你能帮我记下答案吗?嗨,谢谢你花时间分享。我不知道isdigit是一个标准的C函数,对吗我会试试的谢谢!这对你有用吗?如果是的话,你能帮我标出答案吗?