如何检查IOS中的数字是NSInteger还是浮点数? [英] How to check whether a number is NSInteger or floating point in IOS?

查看:65
本文介绍了如何检查IOS中的数字是NSInteger还是浮点数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要检查来自服务器的值是NSString,NSInteger还是float.如果是字符串,我可以检查.但是如何区分浮点数和整数呢?

I need to check whether a value which is coming from the server is NSString , NSInteger or float. In case of string i am able to check.But how can we differentiate between a float and integer ?

推荐答案

此处是操作方法

NSNumber * n = //from somewhere
if (strcmp([n objCType], @encode(float)) == 0) {
    NSLog(@"this is a float");
} else if (strcmp([n objCType], @encode(int)) == 0) {
    NSLog(@"this is an int");
}

编辑

好的,让我们更通用

    NSNumber *anyNSObject = [NSNumber numberWithFloat:0.4];

    id obj = anyNSObject; //you can pass anything here as long as it is inherited from NSObject

    if ([obj isKindOfClass:[NSString class]]) {
        NSLog(@"This is string");
    }

    if ([obj isKindOfClass:[NSNumber class]]) {
        NSLog(@"This is NSNumber");

        if (strcmp([obj objCType], @encode(float)) == 0) {
            NSLog(@"this is a float");
        } else if (strcmp([obj objCType], @encode(int)) == 0) {
            NSLog(@"this is an int");
        }
    }

这篇关于如何检查IOS中的数字是NSInteger还是浮点数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆