Objective-C: как отформатировать строку как $ Price

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
27
задан Michał Powaga 7 May 2012 в 07:42
поделиться

2 ответа

Предполагая, что вы используете Cocoa (или просто Foundation), вы можете использовать NSNumberFormatter и установить для него стиль валюты:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
... = [formatter stringFromNumber:number];

По умолчанию он использует локаль вашей системы, но вы можете изменить это и множество других свойств см. в документации API NSNumberFormatter .

70
ответ дан 28 November 2019 в 04:22
поделиться

Предполагая, что цена хранится в виде числа с плавающей запятой, вам, вероятно, понадобится + localizedStringWithFormat: .

NSString *priceString = [NSString localizedStringWithFormat:@"$ %'.2f",price];

Хммм ... Apple утверждает, что они следуют стандарту IEEE для printf , поэтому он должен принимать флаг ', но он не работает с Tiger. NSNumberFormatter это так.

5
ответ дан 28 November 2019 в 04:22
поделиться