On Tue, Mar 3, 2020 at 3:15 AM M F <[email protected]> wrote: > > Hi All, > > Im having trouble with setting a fact, doing some math, and having the result > be an INT > > To start, i set the base Var > > set_fact: SOMENUMBER = 8 > > Ansible stores this value as a String > > Later, i need to divide that number by 2 and get the result as an INT > > set_fact: myvar = "{{ SOMENUMBER / 2) }}" > > Even then though, Ansible stores it as a string. > > If I do this, i get an INT, but its a FLOAT 4.0 instead of 4 > > set_fact: myvar = "{{ ((SOMENUMBER|int) / 2) }}" > > I am having to resort to doing the following to get my answer of 4 > > set_fact: myvar = "{{ ((SOMENUMBER|int) / 2)|replace('.0','') }}" > > Is there a better way to take a single integer stored as a string, and > perform math and output an INT more simply?
Jinja2 native types introduced in Ansible 2.7 should be what you want: https://docs.ansible.com/ansible/latest/reference_appendices/config.html#default-jinja2-native Martin -- You received this message because you are subscribed to the Google Groups "Ansible Project" 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/ansible-project/CADDq2ENhz5PbhN47px3wVr3ZvTXwwnC6uUwqtFLS5ir5XeHheQ%40mail.gmail.com.
