[ColdFusion] string naar double

Pagina: 1
Acties:

  • MrHighStone
  • Registratie: November 2001
  • Laatst online: 03-02-2023
Zie ik iets over het hoofd, of kan ik in ColdFusion geen strings naar een double converteren?
Uit een database komt uit een tabel met instellingen de string, waarmee gerekend moet worden. Deze string moet dus geconverteerd worden naar een double of float of hoe je dat ding noemt.
Dacht er te wezen met de val() functie, maar die doet het enkel maar voor integerwaarden, niet voor double waarden.
Zie ik iets over het hoofd?

Een file op de A12 is nooit grappig...


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 26-08 07:51

mulder

ik spuug op het trottoir

Evaluate misschien?

oogjes open, snaveltjes dicht


  • MrHighStone
  • Registratie: November 2001
  • Laatst online: 03-02-2023
Heb ik ook bekeken, maar helaas.... Lijkt ook niet te werken.

Een file op de A12 is nooit grappig...


  • edie
  • Registratie: Februari 2002
  • Laatst online: 21:34
allicht dat het hier ergens instaat (5.5 MB pdfje)

"In America, consumption equals jobs. In these days, banks aren't lending us the money we need to buy the things we don't need to create the jobs we need to pay back the loans we can't afford." - Stephen Colbert


  • MrHighStone
  • Registratie: November 2001
  • Laatst online: 03-02-2023
Heb de reference online bekeken, maar kom er niet uit, toch bedankt voor je reactie.
Niemand ervaring met dit euvel?

Een file op de A12 is nooit grappig...


  • edie
  • Registratie: Februari 2002
  • Laatst online: 21:34
MrHighStone schreef op 03 januari 2003 @ 16:41:
Heb de reference online bekeken, maar kom er niet uit, toch bedankt voor je reactie.
Niemand ervaring met dit euvel?
Nog niet. Ik kan straks thuis wel eens even kijken. :)

"In America, consumption equals jobs. In these days, banks aren't lending us the money we need to buy the things we don't need to create the jobs we need to pay back the loans we can't afford." - Stephen Colbert


  • MrHighStone
  • Registratie: November 2001
  • Laatst online: 03-02-2023
wat een vent he ;)

Een file op de A12 is nooit grappig...


  • rickmans
  • Registratie: Juli 2001
  • Niet online

rickmans

twittert

#Numberformat(nummer, "9999999.99")# is dat wat je zocht?

Don't mind Rick


  • MrHighStone
  • Registratie: November 2001
  • Laatst online: 03-02-2023
Nee, dit doet mi precies het omgedraaide, een double converteren naar een string, het is juist de bedoeling een string te converten naar een double, zodat er mee gerekend kan worden.

Een file op de A12 is nooit grappig...


  • rickmans
  • Registratie: Juli 2001
  • Niet online

rickmans

twittert

MrHighStone schreef op 03 januari 2003 @ 17:05:
Nee, dit doet mi precies het omgedraaide, een double converteren naar een string, het is juist de bedoeling een string te converten naar een double, zodat er mee gerekend kan worden.
NumberFormat
Creates a custom-formatted number value. If no mask is specified, returns the value as an integer with a thousands separator.

See also DecimalFormat, DollarFormat, and IsNumeric.
ziet er imho naar uit dat er echt toch een numbervalue van maakt :)

Don't mind Rick


  • MrHighStone
  • Registratie: November 2001
  • Laatst online: 03-02-2023
En toch gaat het niet werken... Nee zonder dollen, heb het reeds geprobeerd, maar zonder resultaat.

Wat er gebeurt is het volgende:
Uit een textveld in een database wordt een decimale waarde gehaald. Vervolgens wordt deze waarde vergeleken met een andere decimale waarde (als a > b dan ...).
Haal ik de waarde (zeg a) door een val() dan gaat ie goed, maar maakt ie er integers van (51,85 wordt dan 51) maar voert ie de if wel uit, doe ik dit niet, dan gaat het mis...

Een file op de A12 is nooit grappig...


  • rickmans
  • Registratie: Juli 2001
  • Niet online

rickmans

twittert

MrHighStone schreef op 03 January 2003 @ 17:29:
En toch gaat het niet werken... Nee zonder dollen, heb het reeds geprobeerd, maar zonder resultaat.

Wat er gebeurt is het volgende:
Uit een textveld in een database wordt een decimale waarde gehaald. Vervolgens wordt deze waarde vergeleken met een andere decimale waarde (als a > b dan ...).
Haal ik de waarde (zeg a) door een val() dan gaat ie goed, maar maakt ie er integers van (51,85 wordt dan 51) maar voert ie de if wel uit, doe ik dit niet, dan gaat het mis...
laat eens een stukje code zien :)

Don't mind Rick


  • MrHighStone
  • Registratie: November 2001
  • Laatst online: 03-02-2023
Op zich kan dat wel, maar wordt ene vrij complexe listing, maak oa gebruik van fusebox e.d.
Waar ik naar op zoek ben is 'gewoon' een StringToFloat functie...

Een file op de A12 is nooit grappig...


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 26-08 07:51

mulder

ik spuug op het trottoir

En waar wil je die float dan instoppen?

oogjes open, snaveltjes dicht


  • MrHighStone
  • Registratie: November 2001
  • Laatst online: 03-02-2023
enerzijds in een vergelijking (twee floats met elkaar vergelijken), anderszijds in een rekenfunctie.

Een file op de A12 is nooit grappig...


  • edie
  • Registratie: Februari 2002
  • Laatst online: 21:34
val() werkt bij mij gewoon hoor:
code:
1
2
3
4
5
6
<cfoutput>
#val( '999' )#<br>
#val( '99.9' )#<br>
#val( '9.99' )#<br>
#val( '0.999' ) + 1#<br>
</cfoutput>


output:
code:
1
2
3
4
999
99.9
9.99
1.999

[ Voor 25% gewijzigd door edie op 03-01-2003 20:06 ]

"In America, consumption equals jobs. In these days, banks aren't lending us the money we need to buy the things we don't need to create the jobs we need to pay back the loans we can't afford." - Stephen Colbert


  • rickmans
  • Registratie: Juli 2001
  • Niet online

rickmans

twittert

Ik heb nu een paar keer met Numberformat geprobeerd om als uitkomst geen number te krijgen, alleen lukt het me niet :) dus gooi die complexe listing maar op :P

Don't mind Rick


  • MrHighStone
  • Registratie: November 2001
  • Laatst online: 03-02-2023
eddie19: thanks voor het checken, helaas gaat de laatste regel mis #val( '0.999' ) + 1#
CF begint te piepen over een type mismatch.
Vervang voor de grap eens je .'en (punten) in ,'s (komma's); dan gaat ie mis...

rickmans: denk niet dat het zin heeft de listing te posten, het probleem blijft hetzelfde, er is mi geen functie die StringToFloat kan uitvoeren.

Een file op de A12 is nooit grappig...


  • rickmans
  • Registratie: Juli 2001
  • Niet online

rickmans

twittert

MrHighStone schreef op 03 januari 2003 @ 23:21:
eddie19: thanks voor het checken, helaas gaat de laatste regel mis #val( '0.999' ) + 1#
CF begint te piepen over een type mismatch.
Vervang voor de grap eens je .'en (punten) in ,'s (komma's); dan gaat ie mis...

rickmans: denk niet dat het zin heeft de listing te posten, het probleem blijft hetzelfde, er is mi geen functie die StringToFloat kan uitvoeren.
Maar het gaat dus mis doordat je komma's gebruikt? Dan zou je toch ook een replace() kunnen uitvoeren en dan de komma vervangen door een punt? Even nog een ander vraagje: uit wat voor DB komt het zetten?

Don't mind Rick


  • MrHighStone
  • Registratie: November 2001
  • Laatst online: 03-02-2023
rickmans: daar heb ik net ook mee zitten experimenteren.
Het komt uit een SQL Server 2000 database, waarden worden opgeslagen als 'money' (hier: 1,99)en worden in coldfusion vervolgens in een variabele gestopt (nu: 1.99); op zich logisch natuurlijk.
Onder het motto beter een ranzige oplossing dan geen oplossing, dus maar even een replace toepassen op , naar .
Dank voor het meedenken allemaal, en mochten jullie nog opmerkingen hebben, of een elegantere manier, dan houd ik me aanbevolen.

Een file op de A12 is nooit grappig...


  • MrHighStone
  • Registratie: November 2001
  • Laatst online: 03-02-2023
En hier de elegante oplossing: LSParseCurrency.
Hoewel dit voor currencywaarden geldt, weet ik niet wat de gevolgen kunnen zijn voor complexere double waarden. In elk geval voldoet dit voor mij, omdat het hier om currency berekeningen gaat!

Een file op de A12 is nooit grappig...


  • rickmans
  • Registratie: Juli 2001
  • Niet online

rickmans

twittert

Misschien helpt dit ook nog wel:
http://www.cfcertificatio...ion_Functions/lr3_175.htm

http://www.cfcertificatio...ion_Functions/lr3_171.htm

Bedacht me ineens dat er ook nog wel locales waren voor ander number functions :)

Don't mind Rick


  • edie
  • Registratie: Februari 2002
  • Laatst online: 21:34
MrHighStone schreef op 04 January 2003 @ 12:57:
rickmans: daar heb ik net ook mee zitten experimenteren.
Het komt uit een SQL Server 2000 database, waarden worden opgeslagen als 'money' (hier: 1,99)
En als je nou je systeem instellingen veranderdt, zodat een , een . is? :9

edit:

Je kunt in de Query Analyzer namelijk instellingen welke setttings je wilt gebruiken om currency, numbers, dates and times weer te geven. (Tools->Options->Connections)

[ Voor 24% gewijzigd door edie op 04-01-2003 15:33 ]

"In America, consumption equals jobs. In these days, banks aren't lending us the money we need to buy the things we don't need to create the jobs we need to pay back the loans we can't afford." - Stephen Colbert


  • jochemd
  • Registratie: November 2000
  • Laatst online: 25-08 15:35
Even met SetLocale() de locale goed zetten zodat de komma als decimale scheidingsteken wordt herkend en dan werkt het vast wel.
Pagina: 1