# Concaténation NSString [Obj-C]



## 6ix (13 Août 2005)

Bonjour,

C'est vraiment tout bête, mais... je n'y arrive pas! Et je n'arrive pas à trouver un exemple tout simple qui pourrait m'aider!

Je voudrais simplement afficher un string, composé de deux éléments obtenus par une méthode, et c'est là mon problème; habitué à Java, j'ai qques difficultés à m'habituer à la syntaxe Obj-C.

En Java, je ferais comme cela:



> String s = coutTotal +(coutTotal>1.0 ? "francs": "franc");



Un string qui comprend un float (ou un double), auquel on concatène soit franc, au singulier, soit francs, au pluriel, suivant le nombre d'articles.

Voilà ce que j'ai essayé, mais je me retrouve avec une erreur "incompatible type of initialization":


> NSMutableString *t = (@"%f ", coutTotal);
> [t appendString: (coutTotal>1 ? @"francs": @"franc")];



N'y a-t-il aucun moyen "simple", comme le + en Java, pour concaténer des NSString?
Merci


----------



## mpergand (13 Août 2005)

```
float coutTotal;

...

NSString* coutTotalStr=[NSString stringWithFormat:@"%3.2f %@",coutTotal,(coutTotal>1.0)?@"francs":@"franc"];

NSLog(@"%@",coutTotalStr);
```


----------



## 6ix (13 Août 2005)

Merci! Des petits problèmes sur lesquels on passe bcp de temps... C'est bien quand on a la solution!

Une petite question tout de même: je me demandais pourquoi %3.2f et pas seulement %f, alors j'ai essayé et remarqué une différence de format; mais que signifie vraiment 3.2? Est-ce le "nom" ou "version" du format, tout simplement, ou cela a vraiment un sens? J'ai cherché un peu dans la documentation, mais la seule liste que j'ai trouvée se contente de mentionner les "standards", comme %f, %@ ou %i par exemple...


----------



## mpergand (13 Août 2005)

Ce principe de formatage vient de la fonction C printf :
http://www.dgp.utoronto.ca/~ajr/209/notes/printf.html



```
float f[]={2.5,0.0325,2546.125,3500.0,25.0};
	
	int i;
	
	for(i=0;i<5;i++)
		printf("%8.2f\n",f[i]);
```

ça donne:

```
2.50
    0.03
 2546.12
 3500.00
   25.00
```


----------

