iCulture forum | iPhone, iPad,  iPod touch, Apple TV en iOS

iCulture forum | iPhone, iPad, iPod touch, Apple TV en iOS (https://forum.iculture.nl/)
-   Ontwikkelen voor iOS (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/)
-   -   de waarde van een textfield omzetten naar een double (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/135122-de-waarde-textfield-omzetten-naar-double.html)

brub 12-02-13 19:06

de waarde van een textfield omzetten naar een double
 
Ik heb een textfield (Outlet = aankoopPrijsLabel) in mijn app.

Ik heb het keyboard van dit textfield ingesteld als 'Decimal pad'.

in mijn code gebruik ik de volgende regel:
double test = [self.aankoopPrijsLabel.text doubleValue];

als ik de app run is de waarde verschillend afhankelijk of ik de iPhone simulator of de iPhone gebruik.

Voorbeeld:
ik geef 7.11 in en krijg in de simulator 7.11 als test (dit is OK)

ik geef 7,11 in en krijg in de simulator 7.00 als test (dit is niet OK)

het enige verschil dat ik kan opmerken is dat bij het ingeven op de iPhone de decimale waardes met een komma geplaatst worden.

iemand een idee hoe ik dit kan oplossen?

Bedankt

Whacko 13-02-13 13:37

heeft met je Locale te maken. Moet je even googlen. Waarschijnlijk staat je simulator ingesteld op engels toetsenbord en je iPhone op nederlands. In code moet je dan wat extra's doen om hem correct uit te lezen.

EDIT:

misschien dat het antwoord in deze link je helpt.
http://stackoverflow.com/questions/3...pected-results

brub 13-02-13 14:27

ik heb het op een andere manier opgelost, maar weet niet of dit de beste oplossing is.

double test = [[self.aankoopPrijsLabel.text stringByReplacingOccurrencesOfString:@"," withString:@"."] doubleValue];

Als iemand een beter idee heeft, laat maar komen

Whacko 13-02-13 14:58

Nou zou het voor een simpel getal niet veel uitmaken, maar het voordeel van NSScanner gebruiken is dat het met elke taal werkt, mochten er in andere talen een ander karakter dan . of , gebruikt worden.
Maar jouw oplossing zal in de meeste (zo niet alle getallen) wel werken ja.

EDIT:
Maar in engeland/ amerika mag je een getal als 3450312,99 opschrijven als: 3,450,312.99 dan ga je rare dingen krijgen ;) waarschijnlijk een foutmelding.


Alle tijden zijn GMT +2. Het is nu 12:07.