100e00
jest notacji naukowej, a mianowicie: 100 * 10^0, czyli 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>
ten wyjścia:
values:
string: 100e00
numeric: 100
isNumeric()
string: YES
numeric: YES
lsIsNumeric()
string: NO
numeric: YES
Funkcjonalność isNumeric()
i lsIsNumeric()
różnią się nieco poza locale- świadomość tego drugiego.
IsNumeric() stany to: "Określa, czy ciąg mogą być konwertowane do wartości liczbowej" (mój nacisk)
lsIsNumeric() stwierdza: „Określa, czy ciąg jest poprawna reprezentacja numeru "
Czy widzisz subtelną różnicę? ten pierwszy spróbuje wymusić wartość liczbową, podczas gdy druga robi to, co zostało powiedziane: mówi, czy jest to cyfra, czy nie.
To prawdopodobnie naukowe notowanie. Prześlij go do liczby całkowitej lub uruchom format liczbowy i zobacz, co otrzymasz. –