14

小枝に部門があります。場合によっては、結果が小数である可能性があり、常に切り上げた結果が必要です。

元。

7 / 2 = 3.5

私はを頂きたい

7 / 2 = 4

小枝の床の使い方を知っています:

7 / 2 | floor = 3

ただし、これは上位の桁ではなく、下位の桁に丸められます。

number_formatを使用できることも知っています

7 / 2 | number_format(0, '.', ',') = 3

したがって、これも下の桁を取ります。

小枝に上桁を取るように指示する方法について何か考えはありますか?

これはコントローラー(Symfony)で実行できますが、小枝バージョンを探しています。

ありがとうございました。

4

8 に答える 8

18

アップデート

バージョン1.15.0以降では、roundフィルターを使用できます。

{{ (7 / 2)|round(1, 'ceil') }}

http://twig.sensiolabs.org/doc/filters/round.html


ここで説明されているように、小枝を拡張してカスタム関数を作成できます

そしてそれはこのようなものになります:

<?php
// src/Acme/DemoBundle/Twig/AcmeExtension.php
namespace Acme\DemoBundle\Twig;

class AcmeExtension extends \Twig_Extension
{
    public function getFilters()
    {
        return array(
            'ceil' => new \Twig_Filter_Method($this, 'ceil'),
        );
    }

    public function ceil($number)
    {
        return ceil($number);
    }

    public function getName()
    {
        return 'acme_extension';
    }
}

だからあなたは小枝でそれを使うことができます:

(7 / 2) | ceil
于 2013-02-01T13:01:17.293 に答える
10

バージョン1.15.0の新機能:Twig1.15.0でラウンドフィルターが追加されました。

例:{{ 42.55|round(1, 'ceil') }}

ラウンドフィルターは2つのオプションの引数を取ります。1つ目は精度(デフォルトは0)を指定し、2つ目は丸め方法(デフォルトは一般的)を指定します。

http://twig.sensiolabs.org/doc/filters/round.html

于 2015-02-17T14:30:50.950 に答える
4

以前のバージョンではどうなっているのかわかりませんが、Symfony 2.2.1では、計算を括弧で囲む必要があります(拡張機能を作成したと仮定します)。

(7 / 2)|ceil

どうやら彼らは両方とも7 / 2|ceil同じ7 / (2|ceil)(間違った)結果を与え、上記の解決策だけが私のために働いたのでと同じです。

于 2013-05-21T11:32:30.290 に答える
2

試しました7 // 2か?

このドキュメントページが役立つ場合があります。

于 2013-02-01T12:51:27.147 に答える
2

http://twig.sensiolabs.org/doc/filters/round.html

Twig 1.15.0以降では、「round」フィルターを使用して、2番目のパラメーターとして「ceil」を渡すことができます。解決策は次のようになります。

{{ (7 / 2)|round(0, 'ceil') }}

表示用の数値のフォーマットは、コントローラーではなく、ビューに確実に属します。これは表示ロジックと見なされます。これは、可能な限りクリーンに保つ必要があるコントローラーのビジネスロジックとは異なります。

于 2014-03-17T18:40:09.470 に答える
2

ラウンドフィルターは、最初の引数を精度として取ります。したがって、OPの質問に答えるための正しい定式化は次のようになります。

{{ (7 / 2)|round(0, 'ceil') }}

それよりも

{{ (7 / 2)|round(1, 'ceil') }}

http://twig.sensiolabs.org/doc/filters/round.html

于 2019-04-09T15:55:29.717 に答える
0

バージョン1.12.0以降を使用している場合は、三項演算子を使用して次のようにすることができます。

{{ ((7 / 2) > (7 // 2)) ? (7 // 2) + 1 : (7 // 2) }}

それほど「エレガント」ではありませんが、とにかく機能します。

于 2013-10-09T20:39:27.413 に答える
-5

http://php.net/manual/en/function.ceil.php

PHPの天井関数を使用して、やりたいことを実行します

于 2013-02-01T12:54:22.223 に答える