Updated May 2024
The .VALX(a$) function is an extended version of the traditional VAL(). It supports all of the same behavior, plus it automatically skips over any amount of non-numeric text preceding the number, and also recognizes common types of numeric formatting such as thousands separators, currency symbols, and parentheses for negatives. This makes it particularly handy for importing values from spreadsheets and reading numeric cells in XTREE.
Examples
Expression |
val(expr) |
.valx(expr) |
Notes |
---|---|---|---|
"123" |
123 |
123 |
|
" 123" |
123 |
123 |
leading spaces |
" -123 US" |
-123 |
-123 |
leading minus and spaces |
"$123" |
0 |
123 |
leading non-digits |
"-$123.45" |
0 |
-123.45 |
leading -$ |
"123,456.78" |
123 |
123456.78 |
thousands separators |
"($1,234.56)" |
0 |
-1234.56 |
parentheses for neg |
"price: (USD) 0.99" |
0 |
0.99 |
(USD) ignored (non-numeric) |
"&h0200" |
512 |
512 |
&h for hex |
"&O0200" |
128 |
128 |
&o for octal |
"hex flags: &h0200" |
0 |
512 |
leading text |
"hex flags: 0x0200" |
0 |
512 |
0x for hex |
"octal flags: o0200" |
0 |
128 |
0o for octal |
"binary flags: 0b10110" |
0 |
22 |
0b for binary |
"&b1010101010101010" |
0 |
43690 |
&b for binary |
History
2021 April, A-Shell 6.5.1702: Add function to A-Shell.