Помощник
|
Отделение последней цифры |
lesli007
|
Сообщение
#1
|
||
|
|
||
|
|||
sc2r2bey |
21.3.2011, 16:48;
Ответить: sc2r2bey
Сообщение
#2
|
|
все очень просто делается 2-мя стандартными функциями для работы со строками
шаг1 - определяем сколько символов в числе шаг2 - определяем последнюю цифру [php]<? // исходное число $number = 23540345; // считаем количество символов в числе $sum_number = strlen($number); // получаем последний символ $last_number = substr($number, $sum_number-1, $sum_number); echo $last_number; ?>[/php] -------------------- программирую web и для we |
|
|
yury_mw |
21.3.2011, 17:11;
Ответить: yury_mw
Сообщение
#3
|
|
lesli007,
вот функция, которая делает примерно то, что вам надо: [php]//выводит строку "год"/"года"/"лет" в зависимости от числового значения возраста, например: "22 года" или "45 лет" function s_years($age) { $t1 = $age % 10; $t2 = $age % 100; return ($t1 == 1 && $t2 != 11 ? "год" : ($t1 >= 2 && $t1 <= 4 && ($t2 < 10 || $t2 >= 20) ? "года" : "лет")); }[/php] Взято из поста на этом форуме: Расчет сколько лет, зная дату рождения, ищу функцию Думаю, вы сами без труда сможете поправить ее под свой случай. |
|
|
yury_mw |
21.3.2011, 19:37;
Ответить: yury_mw
Сообщение
#4
|
|
surfer,
думается, вы немножко переборщили с количеством шагов и функций ;) Чтобы определить последнюю цифру в десятеричном числе достаточно вычислить остаток от деления этого числа на 10: [php]<?php // исходное число $number = 23540345; // получаем последнюю цифру echo $number % 10; ?>[/php] |
|
|
Eugene_hb |
22.3.2011, 17:11;
Ответить: Eugene_hb
Сообщение
#5
|
|
Одной последней цифры мало.
Например, сравните фразы 2 числа и 12 чисел. И в том, и в другом случае заканчивается на двойку, но окончания разные. Поэтому вот более универсальная функция: [php]function declination_by_num($num, $values) { $num = $num % 100; if ($num >= 5 && $num <= 20) { return $values[2]; } $num = $num % 10; if ($num == 1) { return $values[0]; } if ($num >= 2 && $num <= 4) { return $values[1]; } return $values[2]; }[/php] Параметры: $num - число, относительно которого нужно выбрать склонение существительного $values - массив с вариантами написания существительного: - $values[0] - для *1 (1 число, 21 число и т.д.) - $values[1] - для *2, *3 и *4 (2 числа, 24 числа и т.д.) - $values[2] - для остальных случаев (5 чисел, 17 чисел и т.д.) Возвращает соответствующий элемент массива $values |
|
|
yury_mw |
22.3.2011, 17:57;
Ответить: yury_mw
Сообщение
#6
|
|
EugeneM,
вы сообщение #3 читали? ;) |
|
|
ZiTosS |
22.3.2011, 20:12;
Ответить: ZiTosS
Сообщение
#7
|
|
|
Улыбнуло У каждого свой вариант решения задачи.
lesli007, для работы с числами правилен вариант остатка от деления числа на декады, который вам предложили P.s. Для разных слов разные формы нужно составлять...
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Доработка сайта на Joomla, обновления движка до последней версии | 0 | Marie_hb | 2301 | 30.10.2013, 15:48 автор: -Marie- |
|
Качественный прогон лицензионным XRumer'ом последней версии по профилям (форумы, | 0 | madara1592 | 1728 | 8.8.2012, 12:02 автор: madara1592 |
Текстовая версия | Сейчас: 29.3.2024, 8:43 |