【问题标题】:How to print integer with 0 as a decimal value?如何以 0 作为十进制值打印整数?
【发布时间】:2016-04-26 05:12:16
【问题描述】:

我有一个来自数据库的号码,例如 7.0 或 7.7 。当我打印值时, 7.7 按原样打印,但 7.0 仅打印为 7。有没有办法将 7.0 打印为 7.0 。我在 sf2 中使用 twig 模板。

这就是我打印这些值的方式

{{ object.value }}

【问题讨论】:

  • 使用floatval()函数。

标签: symfony twig


【解决方案1】:

您可以使用number_format Twig 过滤器,例如:

{{ object.value|number_format }}

完整示例:

{{ 9800.333|number_format(2, '.', ',') }}

更多信息在doc here

【讨论】:

  • 应该改为number_format(1, '.', ',') 吗?看起来 OP 只想要一位小数。
【解决方案2】:

这可能不是正确的方法,但至少我有一些工作

首先我检查了长度,如果长度是 1 或 2,我打印了值并附加了 .0 否则我只是打印了值。

{% if (device.ph_value|length == 1 or device.ph_value|length == 2)%}
    {{device.ph_value}}.0
{% else %}
    {{device.ph_value}}
{% endif %}

【讨论】:

  • 如何检查777 的长度?
  • 通过将其转换为字符串
  • 糟糕,我的例子错了,如果你有777呢?
  • 嗨@A.L,该值只能是小数点后的一位数或两位数。
【解决方案3】:
echo number_format(object.value,1);

这应该将 7.0 输入为 7.0 而不是 7

【讨论】:

  • 但是如果数字像 7.89 怎么办。我想按原样展示它。谢谢大佬解答
  • 我的建议是使用 strlen 来读取字符串的长度,并在本例中减去 1。Strlen() =3 -1 =2。 Number_format(vvv,2);但你需要编码
  • 其实我用的是twig模板所以正常的php函数是不行的
  • 你可以写一个twig过滤器来包装普通的php函数。
【解决方案4】:

你可以做一些进一步的事情来保持价值。

   $integer = filter_var(7.7, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);

    print_r($integer);

    output
    7.7

【讨论】:

  • 如何在 Twig 模板中使用它?
猜你喜欢
  • 1970-01-01
  • 2011-12-04
  • 1970-01-01
  • 2012-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-17
相关资源
最近更新 更多