Проблема NSString stringWithFormat - PullRequest
       7

Проблема NSString stringWithFormat

2 голосов
/ 08 ноября 2010

У меня такая проблема: double calcValue;

NSString *buf = [NSString stringWithFormat:@"%14f", myCalculator.calcValue];

buf = "7.142857";

вместо

buf = "7.1428571428571423";

Я пытался отформатировать его таким образом: @ "% f".Но когда я попробовал @ "% 14.9f" 9 знаков после отображения запятой.

В чем проблема?И как я могу это решить?Thanx!

Ответы [ 2 ]

3 голосов
/ 08 ноября 2010

Если я не понимаю, правильный формат будет @"%.14f.

Что вы сделали, @"%14f" говорит, что вы хотите до 14 цифр, до десятичной точки, но вы не указали цифры после.

1 голос
/ 08 ноября 2010

Я не уверен, почему, но stringWithFormat:, похоже, неправильно форматирует дубли. Вы можете попробовать этот подход:

double calcValue=7.1428571428571423;
NSString *buf=[[NSNumber numberWithDouble:calcValue] stringValue];

, который установит buf в @"7.142857142857142".

Для более жесткого контроля над количеством цифр вы можете использовать NSNumberFormatter.

...