On Monday, July 12, 2021 at 4:27:37 AM UTC-7 Siniy-Kit wrote:
> Hi! I use minall[] in filter, and sometimes get "infinity" when one of
> the field values is text (not number) How can I check numbers in filter?
> (something like is[number] )
At present, there is no "is[number]" filter.
However, using a bit of clever math, it *is* possible to determine if a
value is a number:
If you multiply a field value by 1, and get the same value back, then it is
a number. Here are some examples:
<$vars value="5"><<value>> is {{{ [<value>multiply[1]match<value>then[a
number]else[not a number]] }}}<br>
<$vars value="0"><<value>> is {{{ [<value>multiply[1]match<value>then[a
number]else[not a number]] }}}<br>
<$vars value="foo"><<value>> is {{{ [<value>multiply[1]match<value>then[a
number]else[not a number]] }}}<br>
Note that using the match<value> test doesn't properly handle values with
leading or trailing zeros (e.g., "5.00" or "005"
<$vars value="5.00"><<value>> is {{{ [<value>multiply[1]match<value>then[a
number]else[not a number]] }}}<br>
<$vars value="005"><<value>> is {{{ [<value>multiply[1]match<value>then[a
number]else[not a number]] }}}<br>
<$vars value="000"><<value>> is {{{ [<value>multiply[1]match<value>then[a
number]else[not a number]] }}}<br>
A more accurate test would be to use compare:number:eq<value>
<$vars value="5.00"><<value>> is {{{
[<value>multiply[1]compare:number:eq<value>then[a number]else[not a
number]] }}}<br>
<$vars value="005"><<value>> is {{{
[<value>multiply[1]compare:number:eq<value>then[a number]else[not a
number]] }}}<br>
<$vars value="000"><<value>> is {{{
[<value>multiply[1]compare:number:eq<value>then[a number]else[not a
number]] }}}<br>
enjoy,
-e
--
You received this message because you are subscribed to the Google Groups
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/tiddlywiki/1296971c-8dc2-4edb-9b09-2a78067a00c5n%40googlegroups.com.