如何将整数变量转为first_digit.second_digit格式?Ansible模板报错解决
解决Ansible中整数转x.y格式字符串的问题
你的代码报错是因为Jinja2模板语法错误:管道符|用于调用过滤器,但你直接在后面写php[0]+'.'+php[1]不符合语法规范,且转字符串的写法也存在问题。
以下两种正确实现方式:
方式一:字符串切片法
先将整数转为字符串,再通过索引取首尾两位拼接:
- name: Install PHP > 5.6 apt: name: - "php{{ (php | string)[0] }}.{{ (php | string)[1] }}" when: php > 56
- 逻辑:
php | string把整数变量转为字符串类型,[0]取第一位数字,[1]取第二位数字,用.拼接成目标格式。
方式二:数学运算法
通过整除和取余拆分两位数的十位与个位,无需转字符串:
- name: Install PHP > 5.6 apt: name: - "php{{ php // 10 }}.{{ php % 10 }}" when: php > 56
- 逻辑:
php // 10对10做整除运算得到十位数字,php % 10取10的余数得到个位数字,直接拼接即可。
两种方法都能实现将56转为5.6、71转为7.1的需求,若你的php变量确定为两位数,任选其一即可。
内容的提问来源于stack exchange,提问作者EternalOriole
相关产品推荐
相关产品推荐

