Toon posts:

[CFML] decimalformat zonder thousands seperator?

Pagina: 1
Acties:

Verwijderd

Topicstarter
In de database van een webwinkel staan prijzen in euro's van enkele tientallen tot duizenden euro's.

Omdat de webserver US English is, komen de prijzen er als volgt uit te zien met decimalformat: 2,299.00

Dus bij een artikel met een prijs van EUR 2.299,00 staan de punten en komma's omgedraaid. Op zich niet zo erg bij de decimalen alleen die thousands seperator is me een doorn in het oog. Is deze weg te krijgen?

Ik heb al tientallen dingen met numberformat geprobeerd, maar helaas nog zonder resultaat. Om met SetLocale te gaan werken zie ik helemaal niet zitten.

Is er iemand die een oplossing heeft voor Nederlandse prijzen op een US webserver?

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
SetLocale lijkt me juist bij uitstek geschikt voor wat jij wil, maar goed, ik kan je niet dwingen.

Wat heb je precies met NumberFormat geprobeerd? Want als ik bij de online reference kijk, dan worden er al gelijk goede voorbeelden gegeven. Kijk hier maar eens. Er staan al direct voorbeelden die je kunt gebruiken. Een '.' in de mask moet je lezen als fractionseparator hier (dus dat wordt een , bij de NL locale) en idem voor ',' als decimalseparator.

Je kunt het trouwens ook goed combineren, dus Locale en NumberFormat, zodat je je getallen als 25,50 te zien krijgt ipv 25.50.

Verwijderd

Topicstarter
Ik had o.a. deze geprobeerd:
<cfset s=11340>
<cfoutput>#Numberformat(s,"________.__")#</cfoutput>

Maar ik vind het zo jammer dat je dan weer een "hard" aantal underscores voor het getal voor de komma moet opgeven. Aan de ene kant kost het allemaal ruimte en als ik het te klein maak dan mis ik straks nog een getal bij een heel duur artikel!

Ook met een komma werkt het niet. En met een punt krijg ik niet altijd decimalen te zien: wanneer een artikel bijvoorbeeld 10.00 is, dan staat er 10. (dus zonder decimalen).

Ik heb de docs van ColdFuison bekeken, livedocs en een boek, maar hoe ik bijvoorbeeld een SetLocale in mijn Application.cfm zet staat er helaas niet in. Als het toch goed te doen is met SetLocale dan zal ik dat toch liever gebruiken dan numberformat denk ik!

Maar jeetje, wel omslachtig zeg, dat ze niet een functie in CF hebben ingebakken zonder duizendtallen seperator (of een decimalformat met meerdere opties)...

[ Voor 4% gewijzigd door Verwijderd op 01-03-2005 14:20 ]


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Lees die link die ik heb gepost nog maar eens aandachtig door. Kijk vooral eens bij Mask character '0'.
Heb je deze al eens geprobeerd:
code:
1
.00

  • jochemd
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Verwijderd schreef op dinsdag 01 maart 2005 @ 14:20:
Ik heb de docs van ColdFuison bekeken, livedocs en een boek, maar hoe ik bijvoorbeeld een SetLocale in mijn Application.cfm zet staat er helaas niet in.
http://livedocs.macromedi...ldocs/00000624.htm#136340

Verwijderd

Topicstarter
Ja, die had ik ook al gedaan maar helaas ook dan krijg ik, net zoals ik al zei bij het andere voorbeeld in numberformat, bij de prijzen in hele euro's bijvoorbeeld 10. ipv 10.00.

Ook 9.00 als mask lukte niet... Ik piel nog wel even door maar ik vind dit echt raar hoor van ColdFusion. Hoe moeilijk kan nou een functie zijn om een getal in 2 decimalen neer te zetten, ongeacht hoeveel cijfers er voor de komma staan? Voor mijn gevoel zo iets a la *.00 moeten werken :)

Maar kan je misschien toch een tipje van de sluier oplichten mbt het zetten van een SetLocale in de Application.cfm?

Verwijderd

Topicstarter
Okee, hier staat een voorbeeld voor los. Maar hoe zet ik hem nu juist in de Application.cfm? Ik kan ook wel steeds bovenaan elke file een file includen met de SetLocale erin, maar ik kan het niet uitstaan dat ik niet weet hoe hem in de Application.cfm te zetten! :)

Verwijderd

Topicstarter
Ik heb het nu zo opgelost, en zo werkt het wel (weet niet wat ik eerst fout deed):

In een pagina die ik altijd bovenaan andere pagina's include doe ik:
<cfset newLocale = setLocale("Dutch (Standard)")>

In de pagina's met de prijzen doe ik nu:
Prijs: € #LSNumberFormat(prijs, "______.__")#

Werkt perfect :+

Alleen 1 dingetje: ik heb nu 6 karakters voor de komma. Daar kan je bedragen kwijt van honderdduizenden euro's. Maar stel er is nu een heel duur artikel van 1 miljoen euro of meer, dan laat ie dat niet goed zien of je moet weer een underscore erbij zetten... Het is toch jammer dat geen wildcard ofzo voor de decimalen kunt zetten, toch?
Pagina: 1