Objective c 数字和十进制值

Objective c 数字和十进制值,objective-c,Objective C,我有一个像这样的NSNumber,例如=1978,我想把它转换成:1K9,第二个例子:35700转换成:35K7(其中“k”是公里,“M”是米,我怎么做 谢谢 注意:我没有带mac电脑,如果[temp stringValue]出现任何错误,请通知我 注意:我没有带mac,如果[temp stringValue]出现任何错误,请通知我。编写自己的NSNumberFormatter子类。在这个子类中,您可以实现计算逻辑 逻辑可能是这样的 将值除以千,然后加上“k” 如果你想得到第一个数字的百分之三十

我有一个像这样的NSNumber,例如=1978,我想把它转换成:1K9,第二个例子:35700转换成:35K7(其中“k”是公里,“M”是米,我怎么做

谢谢

注意:我没有带mac电脑,如果
[temp stringValue]
出现任何错误,请通知我


注意:我没有带mac,如果
[temp stringValue]
出现任何错误,请通知我。

编写自己的NSNumberFormatter子类。在这个子类中,您可以实现计算逻辑

逻辑可能是这样的

  • 将值除以千,然后加上“k”
  • 如果你想得到第一个数字的百分之三十,得到你的价值的最后一位数字
  • 返回新字符串

  • 编写自己的NSNumberFormatter子类。在这个子类中,您可以实现计算逻辑

    逻辑可能是这样的

  • 将值除以千,然后加上“k”
  • 如果你想得到第一个数字的百分之三十,得到你的价值的最后一位数字
  • 返回新字符串
  • 以下是方法:

    NSNumber *initialNumber = [NSNumber numberWithInt:35700];
    NSString *resultString = [NSString stringWithFormat:@"%iK%i", floor(initialNumber / 1000), floor((initialNumber % 1000) / 100)];
    
    以下是方法:

    NSNumber *initialNumber = [NSNumber numberWithInt:35700];
    NSString *resultString = [NSString stringWithFormat:@"%iK%i", floor(initialNumber / 1000), floor((initialNumber % 1000) / 100)];
    

    基本上,您可以使用内部数字数据。 假设您正在处理一个基于仪表的值,您可能需要以下内容:

    NSNumber *sourceValue = ... // your NSNumber value from any source
    int meters = sourceValue.intValue;
    int km = floor(meters / 1000);          // only your kilometers
    int sub_km = meters % 1000;             // only the part behind the kilometers
    int first_sub_km = floor(sum_km / 100); // the first digit of the subrange
    NSString *readable = [NSString stringWithFormat:@"%iK%i", km, first_sub_km];
    
    首先,你把米分成1000米。
    然后您只需将其格式化,中间有一个K。

    基本上您可以处理内部数字数据。 假设您正在处理一个基于仪表的值,您可能需要以下内容:

    NSNumber *sourceValue = ... // your NSNumber value from any source
    int meters = sourceValue.intValue;
    int km = floor(meters / 1000);          // only your kilometers
    int sub_km = meters % 1000;             // only the part behind the kilometers
    int first_sub_km = floor(sum_km / 100); // the first digit of the subrange
    NSString *readable = [NSString stringWithFormat:@"%iK%i", km, first_sub_km];
    
    首先,你把米分成1000米。
    然后你只需将其格式化,中间有一个K。

    这不是确切的答案,你应该用同样的方法将其余的数字添加到字符串中。这不是确切的答案,你应该用同样的方法将其余的数字添加到字符串中。你在示例中在哪里写了“M”?示例我有:1790M(米),我想把它转换成这样的公里数:1K7,另一个例子:34567M我想:34K5谢谢你的例子里有没有写“M”呢?例子我有:1790M(米),我想把它转换成这样的公里数:1K7,另一个例子:34567M我想:34K5谢谢