我有一个像这样的NSNumber例如= 1978,我想转换为:1K9,seconde示例:35700转换为:35K7(其中“k”是公里,“M”是米,我怎么做此
感谢
答案 0 :(得分:2)
int temp;
NSNumber *yourNumber;//the number you enter from some where
NSString *newValue;
if([yourNumber intValue]>1000){
temp = [yourNumber intValue] % 1000 ;//your number module 1000
newValue= [[temp stringValue]stringByAppendingString:@"K"];
}
注意:我没有我的mac,如果[temp stringValue]
给出了任何问题和错误,请通知我。
答案 1 :(得分:2)
以下是:
NSNumber *initialNumber = [NSNumber numberWithInt:35700];
NSString *resultString = [NSString stringWithFormat:@"%iK%i", floor(initialNumber / 1000), floor((initialNumber % 1000) / 100)];
答案 2 :(得分:1)
基本上您可以使用内部数字数据。 假设您正在处理基于仪表的值,您可能需要这样的东西:
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和> 1000。 然后你只需要将其格式化,中间用K.
答案 3 :(得分:0)
编写自己的NSNumberFormatter子类。在这个子类中,您可以实现计算逻辑。
逻辑可能如下所示。