उपयोगकर्ता को int
के रूप में एक डॉलर मूल्य दर्ज करेगा, और मैं परिणाम को एक छोटी, स्वरूपित स्ट्रिंग में परिवर्तित करना चाहता हूं। तो यदि उपयोगकर्ता 1700 में प्रवेश करता है, तो स्ट्रिंग "$ 1.7k" कहती है। यदि उपयोगकर्ता 32600000 में प्रवेश करता है, तो स्ट्रिंग "$ 32.6m" कहती है।int को छोटा, स्वरूपित स्ट्रिंग
अद्यतन
यहाँ कोड मैं अब तक राशि है। ऐसा लगता है कि संख्या ~ 10k के लिए काम कर रहा है। बड़ी संख्या के लिए बयान अगर मैं और अधिक जोड़ दूंगा। लेकिन क्या ऐसा करने का एक और अधिक प्रभावी तरीका है?
NSNumberFormatter *nformat = [[NSNumberFormatter alloc] init];
[nformat setFormatterBehavior:NSNumberFormatterBehavior10_4];
[nformat setCurrencySymbol:@"$"];
[nformat setNumberStyle:NSNumberFormatterCurrencyStyle];
double doubleValue = 10200;
NSString *stringValue = nil;
NSArray *abbrevations = [NSArray arrayWithObjects:@"k", @"m", @"b", @"t", nil] ;
for (NSString *s in abbrevations)
{
doubleValue /= 1000.0 ;
if (doubleValue < 1000.0)
{
if ((long long)doubleValue % (long long) 100 == 0) {
[nformat setMaximumFractionDigits:0];
} else {
[nformat setMaximumFractionDigits:2];
}
stringValue = [NSString stringWithFormat: @"%@", [nformat stringFromNumber: [NSNumber numberWithDouble: doubleValue]] ];
NSUInteger stringLen = [stringValue length];
if ([stringValue hasSuffix:@".00"])
{
// Remove suffix
stringValue = [stringValue substringWithRange: NSMakeRange(0, stringLen-3)];
} else if ([stringValue hasSuffix:@".0"]) {
// Remove suffix
stringValue = [stringValue substringWithRange: NSMakeRange(0, stringLen-2)];
} else if ([stringValue hasSuffix:@"0"]) {
// Remove suffix
stringValue = [stringValue substringWithRange: NSMakeRange(0, stringLen-1)];
}
// Add the letter suffix at the end of it
stringValue = [stringValue stringByAppendingString: s];
//stringValue = [NSString stringWithFormat: @"%@%@", [nformat stringFromNumber: [NSNumber numberWithDouble: doubleValue]] , s] ;
break ;
}
}
NSLog(@"Cash = %@", stringValue);
आप के साथ यह कर सकते हैं एक साधारण अगर ... और अगर ... – Selkie
मुझे यकीन है कि आपने अपना प्रश्न पूछने से पहले कुछ करने की कोशिश की है, लेकिन आपका कोड काम नहीं करता है। क्या आप अपना सर्वश्रेष्ठ प्रयास पोस्ट कर सकते हैं? – dasblinkenlight
हालांकि, आप दशमलव बिंदु कैसे प्राप्त करेंगे? यानी, 1700 से 1.7 रूपांतरित कर रहा है। मुझे लगता है कि मैं यही संघर्ष कर रहा हूं। इसे स्ट्रिंग में बदलने से पहले इसे विभाजित करें? – bmueller