Builtin

str_int

str_int{s:str, i:int, format:str, default:float}

A relation generator. Can convert string s into integer i and vice-versa.

For each string that cannot be parsed, no tuple is returned.

If format is given it is treated as a format string. See print for details.

If default is given it is used for i when s is "".

Examples

string to integer
str_int(s:="42")
iformatdefault
420

integer to string
str_int(i:=42)
sformatdefault
420

integer with format
str_int(i:=42, format:=":04d")
sdefault
00420

bulk operation - with some invalid and some empty
d := {s:str}{
     ["3"]
     ["not an int"]
     [""]
     ["99.12"]
     ["-42"]
}
(d & str_int){s, i}
┌───────┬─────┐
│ s     │ i   │
├───────┼─────┤
│       │   0 │
│ -42   │ -42 │
│ 3     │   3 │
│ 99.12 │  99 │
└───────┴─────┘

form example
form := {k:str,     v:str,   s:str}{
        ["item_id", "338",   "338"],
        ["amount",  "42.13", "42.13"],
        ["size",    "1291",  "1291"],
}
(form[k="item_id"] & str_int){k, i}
┌─────────┬─────┐
│ k       │ i   │
├─────────┼─────┤
│ item_id │ 338 │
└─────────┴─────┘