Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 细枝中的浮动比较_Symfony_Twig - Fatal编程技术网

Symfony 细枝中的浮动比较

Symfony 细枝中的浮动比较,symfony,twig,Symfony,Twig,我试图比较twig中的两个浮动,但没有得到好的结果: 我有两个“相等”的浮动:浮动1和浮动2 {% if float1 == float2 %} <span>Floats are equal</span> {% else %} <span>Floats are different</span> {% endif %} {{ float1 == float2 }} {%if float1==float2%} 浮动是相等的 {%else%

我试图比较twig中的两个浮动,但没有得到好的结果:

我有两个“相等”的浮动:浮动1和浮动2

{% if float1 == float2 %}
   <span>Floats are equal</span>
{% else %}
   <span>Floats are different</span>
{% endif %}
{{ float1 == float2 }}
{%if float1==float2%}
浮动是相等的
{%else%}
浮动是不同的
{%endif%}
{{float1==float2}
显示:

<span>Floats are different</span>
1
浮动是不同的
1.
如何比较细枝上的两个浮动?
我不明白为什么比较的结果是真的,但是if语句的结果是假的

{% set float1 = 1.0123456789012 %}
{% set float2 = 1.0123456789011 %}

{% if float1 == float2 %}
   <span>Floats are equal</span>
{% else %}
   <span>Floats are different</span>
{% endif %}
{%set float1=1.0123456789012%}
{%set float2=1.0123456789011%}
{%if float1==float2%}
浮动是相等的
{%else%}
浮动是不同的
{%endif%}
限制(至少在Twigfiddle上)为13位小数。因此
1.0123456789012
起作用;但是如果增加到
1.01234567890123
,比较将不起作用

下面是TwigWiddle,让您看到它的工作原理:


你的代码和那有什么不同吗?换句话说,在上面我使用
set
来声明两个浮点变量。您是否也尝试过
{{dump(float1)}}
以查看打印出来的值是什么?

以下是我在TwigFIDLE上尝试的一个工作示例:

{% set float1 = 1.0123456789012 %}
{% set float2 = 1.0123456789011 %}

{% if float1 == float2 %}
   <span>Floats are equal</span>
{% else %}
   <span>Floats are different</span>
{% endif %}
{%set float1=1.0123456789012%}
{%set float2=1.0123456789011%}
{%if float1==float2%}
浮动是相等的
{%else%}
浮动是不同的
{%endif%}
限制(至少在Twigfiddle上)为13位小数。因此
1.0123456789012
起作用;但是如果增加到
1.01234567890123
,比较将不起作用

下面是TwigWiddle,让您看到它的工作原理:


你的代码和那有什么不同吗?换句话说,在上面我使用
set
来声明两个浮点变量。您是否也尝试过
{{dump(float1)}}
查看打印出来的值是什么?

可能与。我知道float是如何工作的,但我不明白为什么if语句中的比较结果不同,以及在显示它时的比较结果不同。还有,有没有一个比较细枝中浮动的解决方案?查看生成的缓存文件可能会发现它们不同的原因。同样,你也可以像在其他地方做的那样比较枝条中的浮点:如果它们的差值低于这个值,你就检查它们的相对差值,并考虑它们是否相等。我尝试了这样的事情:{%IF(浮标1 -浮标2)ABS<0.00001% },但是这仍然在你所使用的哪种版本的枝条中?你的价值观是什么?我试过你的例子,它的行为是正确的。可能重复的。我知道float是如何工作的,但我不明白为什么if语句中的比较结果不同,以及在显示它时的比较结果不同。还有,有没有一个比较细枝中浮动的解决方案?查看生成的缓存文件可能会发现它们不同的原因。同样,你也可以像在其他地方做的那样比较枝条中的浮点:如果它们的差值低于这个值,你就检查它们的相对差值,并考虑它们是否相等。我尝试了这样的事情:{%IF(浮标1 -浮标2)ABS<0.00001% },但是这仍然在你所使用的哪种版本的枝条中?你的价值观是什么?我试过你的例子,它的行为是正确的。事实上,我注意到我的代码可以处理数字,但我比较了一个函数返回的两个浮点数。您知道Twig中返回的浮点值是否有某些特定的内容吗?您的意思是您正在使用控制器中的函数进行比较吗?如果是这样,您能否编辑您的帖子并显示相关代码的
部分
?或者你是说别的什么?您是否尝试了
{{dump(float1)}}
函数以查看实际值?我向模板传递了一个干预对象,然后尝试比较两个函数的结果(interference.getPrice()==interference.getPriceMin())这给了我比较问题。dump显示了两个float的相同值,我刚刚使用了模板,多亏了“set”,我将函数的返回设置为变量,并比较这些变量。我想我会删除这个问题,并重新发布一个关于为什么返回值没有得到很好解释的问题。谢谢你的回答!它帮助我找到了set-trickIn事实,我注意到我的代码可以处理数字,但我比较了一个函数返回的两个浮点。您知道Twig中返回的浮点值是否有某些特定的内容吗?您的意思是您正在使用控制器中的函数进行比较吗?如果是这样,您能否编辑您的帖子并显示相关代码的
部分
?或者你是说别的什么?您是否尝试了
{{dump(float1)}}
函数以查看实际值?我向模板传递了一个干预对象,然后尝试比较两个函数的结果(interference.getPrice()==interference.getPriceMin())这给了我比较问题。dump显示了两个float的相同值,我刚刚使用了模板,多亏了“set”,我将函数的返回设置为变量,并比较这些变量。我想我会删除这个问题,并重新发布一个关于为什么返回值没有得到很好解释的问题。谢谢你的回答!它帮助我找到了套路