muhtemelen böyle bir şey istiyorum (para birimini varsayarak bir şamandıra olduğu alanı): 100,0 bölün gerekebilir 52 0,52 olarak gereksinimleri itibaren
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle: NSNumberFormatterCurrencyStyle];
NSString *numberAsString = [numberFormatter stringFromNumber:[NSNumber numberWithFloat:currency]];
tedavi etmek.
Bu yaklaşımla ilgili güzel olan şey şu anki yerel ayarlara saygı göstermesidir. Dolayısıyla, uygun olduğu yerde örneğinizi "5.212,42" şeklinde biçimlendirir.
Güncelleme: Belki de benim örneğimi yazarken biraz hızlandı. Aşağıda Conrad Shultz tarafından belirtildiği gibi, para birimi miktarlarıyla uğraşırken, miktarları NSDecimalNumber
s olarak saklamak tercih edilir. Bu yuvarlama hataları ile baş ağrısı büyük ölçüde azaltacaktır. Bunu yaparsanız yukarıdaki kod parçacığı (varsayarak para bir NSDecimalNumber*
olan) olur: Bu kodu kullanmak
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle: NSNumberFormatterCurrencyStyle];
NSString *numberAsString = [numberFormatter stringFromNumber:currency];
Kesin değerler (özellikle para birimi) için asla şamandıraları kullanmayın! NSDecimalNumber/NSDecimal kullanın. –
Harika!Çalışıyordum ama çift ondalık ile mücadele ediyordum. Onu çok özledim. Teşekkür ederim! –
Çok hoş geldiniz! – idz