Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не сохраняется ноль в числе

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Exponat
Отправлено: 01 Сентября, 2016 - 15:30:29
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Здравствуйте.
Помогите с ситуацией.
Есть такая переменная:
$cart_number = 010;
Когда я делаю такое:
$user = new CUser;
$user_id = $USER->GetID();
$fields = Array(
"UF_USER_CART" => $cart_number,
);
В админку сайта приходит значение 10. Т.е. первого ноля нету.
Я пробовал такие способа и они не помогали:
"UF_USER_CART" => (int)$cart_number,
"UF_USER_CART" => intval($cart_number),
"UF_USER_CART" => (string) $cart_number,

Можете помочь что я не так делаю?
 
 Top
Sail
Отправлено: 01 Сентября, 2016 - 16:01:49
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




Exponat, лидирующий ноль - признак восьмеричного числа...
Гляньте пример:

Но если запись выглядит так: $cart_number = '010'; - всё меняется. Тогда строка в процессе вычислений может быть преобразована к числу. И лидирующий ноль в десятичной системе счисления не актуален.
Но для вывода числа с лидирующими нулями можно воспользоваться функцией sprintf
Например:
Подробнее: целые числа
 
 Top
Faraon-san
Отправлено: 01 Сентября, 2016 - 16:01:50
Post Id



Посетитель


Покинул форум
Сообщений всего: 318
Дата рег-ции: Сент. 2013  


Помог: 8 раз(а)




кавычки, не?
 
 Top
Exponat
Отправлено: 01 Сентября, 2016 - 16:09:29
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Ребят, я просто ошибся в синтаксисе здесь на сайте.
У меня вообще такой код:
$cart_number = $row["card_number"];
Просто в $row["card_number"] содержится число 010.
(Добавление)
$row["card_number"] получает это число с БД. Как мне на него повлиять чтоб оно было стрингом?
(Добавление)
Кажется я понял.
Нужно считать из числа если первый символ 0 то вырезать первый 0 и echo sprintf('%03d', 10);
И на выходе будет 010
 
 Top
Sail
Отправлено: 01 Сентября, 2016 - 17:10:59
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




что показывает?
 
 Top
Exponat
Отправлено: 01 Сентября, 2016 - 17:18:24
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Ребят, все разобрался, спасибо за ведущие нули.
Оказывается тип данных куда записывалось значение $cart_number - целое число, поэтому все нули обрезались. Поменял на тип данных строка и все ок теперь.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB