[cocoa] StringFormatting vraag

Ik zou graag een aantal float waarden weergeven met een nullen voor de komma. Ik weet hoe ik het met decimalen doe:

[code:1:35143e77d2]
int x = 6;
NSLog(@"%1.6d",x);
[/code:1:35143e77d2]
Output: 000006

Doe ik hetzelfde voor Float krijg ik toch een ander resultaat:

[code:1:35143e77d2]
float x = 6;
NSLog(@"%1.6f",x);
[/code:1:35143e77d2]
Output: 6,000000

Terwijl mijn gewenste output: 000006,000 is.
Ik kan het nergens in de documentatie van Xcode, dan wel op Google vinden. Kan iemand me uitleggen hoe ik dat doe, en waar ik dat soort informatie vind?

Ben ook wel nieuwsgierig of ik de nullen zou kunnen vervangen voor bijvoorbeeld “x”, dus xxxxx6. Kan dat?

Gelijk nog een taalkundig vraagje: Als ik zeg dat ik een getal in 3 decimalen wil, wordt dat doorgaans geinterpreteerd als een getal met 3 cijfers achter de komma. Hoe noem je het als je getallen voor de komma wenst? Is daar ook een woord voor – zoals decimaal – of is het slechts te omschrijven als “zoveel cijfers voor de komma” ?

http://en.wikipedia.org/wiki/Printf#printf_format_placeholders

Hi iJoost, bedankt voor de link.

Toch snap ik het niet helemaal.

Ik lees bijvoorbeeld:
[b:fd7e723331]printf("%02d", 3) results in “03”.[/b:fd7e723331]

maar als ik NSLog(@"%02d", 3) doe, is het resultaat gewoon “3”.

Om bovenstaand resultaat te krijgen moet ik blijkbaar NSLog(@“1.2d”,3) typen. Zijn printf en NSLog wel zomaar uitwisselbaar?

Ehm... Nee, blijkbaar niet dan dus. ;-)

Deze dan maar:

http://developer.apple.com/documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html#//apple_ref/doc/uid/TP40004265

Kan het ook daar niet vinden. Snap jij het? :)

Wat snap ik? Dat je de string-formatting moet gebruiken van de taal die je gebruikt? Ik wel... ;-)

Hoe het werkt. Hoe ik een float output weergeef zoals ik in m'n hoofdpost vroeg... Ik kan het niet in het document terugvinden.

Wanneer je alleen maar nullen hebt voor de float die verder niets te maken hebben met de waarde van de float, zou je kunnen overwegen om twee NSStrings te combineren, de eerste met een aantal nullen (of x-en), en de tweede je float.

@koen klopt, al zou het met de formatting ook moeten kunnen. Het werkt tenslotte ook voor integers.