конечно не перловая - в с++ компилятор даже предупреждает, что сравнение чисел с плавающей точкой на равенство - неправильная операция, и она почти всегда выдаёт false. однако паскаль сравнивает - но он это делает с округлением до 10-го, кажется, знака. но в целом - предпочтителен вариант с разностью; на плюсах я писал что-то вроде (!(a&lt;b)&amp;&amp;!(a&gt;b)) - при этом как раз вычисления идут с точностью машинного epsilon и не надо его вычислять. возможно неудобно городить такой огород - можно написать sub ))&nbsp;<div>
PS а ещё можно перегрузить оператор сравнения.<br><br><div class="gmail_quote">23 декабря 2008 г. 13:17 пользователь Alexander Lourier <span dir="ltr">&lt;<a href="mailto:aml@rulezz.ru">aml@rulezz.ru</a>&gt;</span> написал:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="Ih2E3d">On Tuesday 23 December 2008 13:09:38 Yuri Pac wrote:<br>
<br>
&gt; $ perl -MData::Dumper -e &#39;print Dumper( 15.50 eq 15.5 )&#39;<br>
&gt; $VAR1 = 1;<br>
&gt; $ perl -MData::Dumper -e &#39;print Dumper( &#39;15.50&#39; eq &#39;15.5&#39; )&#39;<br>
&gt; $VAR1 = 1;<br>
&gt; $ perl -MData::Dumper -e &#39;print Dumper( &#39;15.50000&#39; eq &#39;15.5&#39; )&#39;<br>
&gt; $VAR1 = 1;<br>
&gt; $ perl -MData::Dumper -e &#39;print Dumper( &#39;15.50000&#39; == &#39;15.5&#39; )&#39;<br>
&gt; $VAR1 = 1;<br>
&gt; $ perl -MData::Dumper -e &#39;print Dumper( &quot;15.5000&quot; eq &quot;15.5&quot; )&#39;<br>
&gt; $VAR1 = &#39;&#39;;<br>
&gt; $ perl -MData::Dumper -e &#39;print Dumper( &quot;15.5000&quot; == &quot;15.5&quot; )&#39;<br>
&gt; $VAR1 = 1;<br>
<br>
</div>Проблема не перловая, на самом деле. Решение или abs(X1 - X2) &lt; $epsilon, как<br>
уже посоветовали, либо вид сбоку на то же самое - Math::FixedPrecison. Есть<br>
ещё Math::BigFloat - там по-другому арифметика делается. Может, подойдет.<br>
<div><div></div><div class="Wj3C7c">--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</div></div></blockquote></div><br></div>