2013-02-08 16 views
6

Ho appena visto che isNumeric('100e00') restituisce yes mentre lsisnumeric('100e00') restituisce no.isNumeric ('100e00') restituisce yes mentre lsisnumeric ('100e00') restituisce no

Ho controllato altre cifre esadecimali (a, b, c, d) ma non restituisce nulla con esse.

Qualcuno sa perché è considerato 100e00 come valore numerico?

+0

È probabilmente una notazione scientifica. Trasmettilo su un numero intero o esegui un formato numerico e guarda cosa ottieni. –

risposta

10

100e00 è notazione scientifica, cioè: 100 * 10^0, oppure: 100.

<cfset string = "100e00"> 
<cfset numeric = val(string)> 
<cfoutput> 
values:<br /> 
string: #string#<br /> 
numeric: #numeric#<br /> 
<hr /> 
isNumeric()<br /> 
string: #isNumeric(string)#<br /> 
numeric: #isNumeric(numeric)#<br /> 
<hr /> 
lsIsNumeric()<br /> 
string: #lsIsNumeric(string)#<br /> 
numeric: #lsIsNumeric(numeric)#<br /> 
</cfoutput> 

This uscite:

values: 
string: 100e00 
numeric: 100 
isNumeric() 
string: YES 
numeric: YES 
lsIsNumeric() 
string: NO 
numeric: YES 

La funzionalità di isNumeric() e lsIsNumeric() differiscono leggermente oltre il locale- consapevolezza di quest'ultimo.

isNumeric() afferma questo: "Determina se una stringa può essere convertito in un valore numerico" (il mio enfasi)

lsIsNumeric() afferma: "determina se una stringa è un rappresentazione valida di un numero "

Vedete la sottile differenza? il primo cercherà di forzare il valore ad essere un valore numerico, mentre il secondo fa semplicemente ciò che viene detto: ti dice se è un valore numerico o meno.

+0

Questo ha senso! Grazie per la tua risposta. – Ander2

+0

puoi usare 'formatBaseN (100e00,10)' per valutarlo a 100. 'formateBaseN (100e5, 10)' sarebbe uguale a 10000000. Funziona anche per le stringhe. 'formateBaseN ('100e5', 10)' equivale ancora a 10000000. O formato di numero come Dan ha suggerito numberformat ('100e5') = 10.000.000 – Travis

+0

O semplicemente usa 'val()'. Che è più vicino all'intento di ciò che vorresti fare in questo caso. –

Problemi correlati