2015-05-25 4 views
0

Я хочу показать номер 13456 как 13.456K, 3456789 как 34.56L.Есть ли какой-либо форматируемый в IOS конвертировать с K (тыс.), L (Lakh), M (Million), C (Crore) суффиксы?Формат валюты с индийскими суффиксами IOS

+1

Что K, L и C, и что есть отношения? Есть ли простой расчет для преобразования между ними? – Droppy

+0

K-thousand (10^3), L-Lakh (10^5), C-crore (10^7) – ayinala

+0

Для этих суффиксов нет форматирования, но вы можете создать свой собственный форматировщик, используя [Extension] (https: //developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Extensions.html) – ridvankucuk

ответ

3

Там нет библиотеки или SDK в iOS для сокращения или конвертации валюты используя аббревиатуры, такие как K (тыс.), M (млн) аналогичным образом L (100 тысяч), C (10 миллионов) и т. Д., Поскольку эти сокращения отличаются в разных странах и регионах.

Вам придется преобразовать число в соответствии с категорией, в которой ваш номер падает, и используя NSNumberFormatter с NSNumberFormatterCurrencyStyle, вы можете отформатировать свой номер в соответствии с вашими требованиями.

Вы можете использовать следующий код для преобразования суммы валюты по вашему требованию:

float shortenedAmount = actualAmount; 
NSString *suffix = @""; 
if(currency >= 10000000.0f) { 
    suffix = @"C"; 
    shortenedAmount /= 10000000.0f; 
} 
else if(currency >= 1000000.0f) { 
    suffix = @"M"; 
    shortenedAmount /= 1000000.0f; 
} 
else if(currency >= 100000.0f) { 
    suffix = @"L"; 
    shortenedAmount /= 100000.0f; 
} 
else if(currency >= 1000.0f) { 
    suffix = @"K"; 
    shortenedAmount /= 1000.0f; 
} 

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; 
[numberFormatter setNumberStyle: NSNumberFormatterCurrencyStyle]; 
NSString *numberAsString = [numberFormatter stringFromNumber:[NSNumber numberWithFloat:shortenedAmount]]; 

NSString *requiredString = [NSString stringWithFormat:@"%@%@", numberAsString, suffix]; 
+0

Спасибо большое. Ты спас мое время :) – ayinala

0

IOS не содержит форматирования для этого суффикса.

Вы можете создать собственный форматировщик, используя расширение. Расширения добавят новые функции в вашу программу, и это определенно будет работать :)

Ссылка на extensions.

0

Пожалуйста, попробуйте ниже пользовательский метод -

-(NSString *)stringFormating:(int)numValue 
{ 
    NSString *valueString = [NSString stringWithFormat:@"%d", numValue]; 

    if ([valueString length]>7) 
    { 
     NSString *strsecondPart= [valueString substringFromIndex:[valueString length] -7]; 

     return [NSString stringWithFormat:@"%@.%dC",[valueString substringToIndex:[valueString length] -7],[strsecondPart intValue]]; 

    } 
    else if ([valueString length]>5) 
    { 

     NSString *strsecondPart= [valueString substringFromIndex:[valueString length] -5]; 

     return [NSString stringWithFormat:@"%@.%dL",[valueString substringToIndex:[valueString length] -5],[strsecondPart intValue]]; 

    } 
    else if ([valueString length]>3) 
    { 

     NSString *strsecondPart= [valueString substringFromIndex:[valueString length] -3]; 

     return [NSString stringWithFormat:@"%@.%dK",[valueString substringToIndex:[valueString length] -3],[strsecondPart intValue]]; 

    } 


    return valueString; 

} 

NSLog(@"%@", [self stringFormating:100000]); 

выход будет 1.0L

NSLog(@"%@", [self stringFormating:123456]); 

выход будет 1.23456L

+0

Это забавный способ манипулировать числом (смешным я имею в виду неэффективное и противодействующее интуитивное). У вас также есть несколько операторов 'return' без уважительной причины. – Droppy