2010-01-25 16 views
21

Je veux être en mesure de convertir un nombre de chaîne tel que "1 427,76" en nombre dans coldfusion mais la virgule le fait échouer. Existe-t-il un moyen simple de le faire en plus d'avoir à enlever la virgule?Comment convertir une représentation sous forme de chaîne d'un nombre en nombre dans coldfusion?

<cfset string = "1,427.75"> 

<cfset number = string * 100> 

L'erreur se produit lors d'une tentative d'exécution d'opérations mathématiques. Si la virgule est supprimée cela fonctionne très bien mais je reçois la virgule d'un calcul de base de données.

Répondre

43

Je sais que vous pouvez utiliser LSParseNumber:

<cfset string = "1,427.75"> 

<cfset number = LSParseNumber(string) * 100> 
+0

Ça a bien fonctionné, merci! –

+2

@Scott Chantry si la réponse de la dérivation a fonctionné pour vous, n'oubliez pas de le choisir comme réponse acceptée. :) – mwcz

8

Val() fonctionne aussi bien pour les conversions simples où vous ne se soucient pas locale, par exemple Val ('123.45')

+1

L'utilisation de Val ne fonctionne que lorsqu'il n'y a pas de virgule. –

+0

facile fixé avec une chaîne = val (string.replaceAll ('[^ 0-9 \.] +', '')); –

+1

en utilisant val() est environ 2x plus rapide que lsParseNumber() –