Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сравнивание больших целых в Smarty, не сравнивается почему-то 
V
    Опции темы
Prompt
Дата 30.7.2007, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 22.2.2006

Репутация: нет
Всего: нет



Рассказываю. 

Код

$smarty->assign("valpost", array("city"=>"1286652612928158144","country"=>"1286652612928158143", "nazn"=>"1286652612928158146"));
$this->smarty->assign('naz', $arSan);


в шаблоне
Код

  {section name=i loop=$nazn}
  <option{if $valpost.nazn == $nazn[i].id} selected{/if} value="{$nazn[i].id}">{$nazn[i]._Description}</option>
  {/section}



результат

Код


    <option value="1286829818087628275" >Черепановых</option>
    <option value="1286829858162940740" >Мукачевская</option>
    <option value="1286652612928158146" selected>Академическая</option>
    <option value="1286652612928158155" selected>Баррикадная</option>
    <option value="1286652612928158167" selected>Бобруйская</option>

    <option value="1286652612928158171" selected>Буханцева</option>
    <option value="1286652612928158174" selected>Дубовская</option>
    <option value="1286652612928158179" selected>Елецкая</option>
    <option value="1286652612928158192" selected>Елисеева</option>
    <option value="1286652612928158200" selected>Калинина</option>
    <option value="1286652612928158202" selected>Канунникова</option>

    <option value="1286652612928158211" selected>КИМ</option>


не могу понять в чем дело
При проверке типа 
{$valpost.nazn} и {$nazn[i].id} выводятся правильные числа

Это сообщение отредактировал(а) Prompt - 30.7.2007, 16:10
PM MAIL   Вверх
ewolf
Дата 27.8.2007, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: нет
Всего: 18



Т.е. если использовать такой шаблон

Код

{section name=i loop=$nazn}
   <option{if $valpost.nazn == $nazn[i].id} selected{/if} value="{$nazn[i].id}">{$nazn[i]._Description} - {$valpost.nazn} - {$valpost.nazn}</option>
{/section}


Совпадающие значения $valpost.nazn и $valpost.nazn выводятся только один раз?
PM MAIL ICQ   Вверх
FractalizeR
Дата 27.12.2007, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 27.12.2007
Где: Россия/Москва

Репутация: нет
Всего: 4



Причина проста. Попробуйте выполнить следующие строки:

Код

<?php
echo(1286652612928158171);
echo("\r\n");
echo(1286652612928158174);

?>


Результат будет:
Код

C:\php>php test.php
1.2866526129282E+018
1.2866526129282E+018
 То есть они полностью совпадают!

При конвертировании больших числовых значений в строку теряется точность.

Я бы посоветовал вам сравнивать большие числа как строки в данном случае, предварительно преобразовав их в строку с помощью, скажем, функций GMP:
Код

<?php
$a = gmp_init("1286652612928158174");
echo gmp_strval($a);
?>



Это сообщение отредактировал(а) FractalizeR - 27.12.2007, 19:46


--------------------
Чтобы поблагодарить или наоборот поругать участника форума лучше пользоваться значками "+" и "-", изменяющими репутацию. Они находятся слева от поста под именем пользователя.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Extensions | Следующая тема »


 




[ Время генерации скрипта: 0.0398 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.