"PHP" / Говнокод #7548 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
// convert ',' to '.'
public static function ConvertDecimal($num) {
	$num = preg_replace('/,/i', '.', $num);
	//check if is number after convertion
	if (is_numeric($num))
		return $num;
	return false;
}

у автора было суровое детство

Запостил: cephuo cephuo, (Updated )

Комментарии (53) RSS

  • плюсую не только за регулярки, а за проверку, не превратилось ли оно вдруг в число?
    Ответить
    • > не превратилось ли оно вдруг в число
      локаль же
      у обезьянки числа маленькие, дальше тысячный сепаратор притаился
      Ответить
    • так именно то проверка на число и есть главная часть этой функции.

      я приблизительно такое дело делал в одной математической проге для одной полупроводниковой фирмы из Германии у который почти все клиенты седят в штатах: в Германии (и большинство Европы) в числах с плавающей точкой используется запятая - в штатах (и куча еще стран) точка. на локаль правильно выставленую полагатся тоже не приходится. поэтому народ в прогах хардкодит любимый разделитель, и в вводимых числах точку/запятую заменяют на этот самый разделитель.

      это не говно а просто конвертация ввода пользователя.

      один раз погеморитесь с '.' vs. ',' сами поймете к чему это...
      Ответить
      • > один раз погеморитесь с '.' vs. ',' сами поймете к чему это...
        заслуженное говно чтоли?
        заставь кодобезьян локаль поддерживать, они и всё концепцию изговнякают...
        Ответить
        • > заставь кодобезьян локаль поддерживать, они и всё концепцию изговнякают...

          куда здесь в жопу локаль? это обработка ввода пользователя. посади американца на немецкий компьютер (или немца за американский комп) и понаслаждайса трех этажной матерщиной по поводу что говняный софт отказывается числа вводить/вводит числа неправильно.
          Ответить
          • Кстати да - я сам всегда ввожу через точку несмотря на всякие там русские локали.
            Ответить
          • у вас LOCALE_SDECIMAL

            если софт не жопой писан - числа будут введены и выведены в привычном юзеру виде
            Ответить
            • ту уже научил софт читать мысли человека и автоматом вычислять чем он пользуется - точкой или запятой???

              и смена глобальной локали в системе чревата тем что и весь остальной софт начинает работать по другому. конкретный пример: консультанту из штатов для работы надо вводить числа с точкой, но на том же компе заполняемая почасавая отчетность должна использовать локальный формат.

              смена локалей внутри программы в виндах (да и на других системах тоже) почти никогда не работала на 100% - потому что кучи библиотек кэшируют данные из локалей, потому что постоянные опросы тормозят немеряно.

              вперед и с песней все грабли обходить.
              Ответить
              • > надо вводить числа с точкой
                пусть как и положено, ставит предпочитаемую локаль и вводит, не надо ему на уши ссать про несчастных полуграмотных аборигенов с контрабандными писюками, система позволяет хоть "xуй\0" использовать как разделитель

                глобализация не подразумевает вавилон с модальными окнами в одной локали, а немодальными в другой

                > кучи библиотек кэшируют
                выкинуть или поправить, нотификация для этого есть

                > почасавая
                стоит ли спорить?
                Ответить
                • > стоит ли спорить?

                  правильно, не стоит. все уже догадались что в данной тематике вы имеете ноль конкретного опыта. не говоря уже о том что бы понять проблему которую решает код выше.
                  Ответить
                  • > что в данной тематике вы имеете ноль конкретного опыта
                    вы правы, никогда не писал подобную хуйню, хотя на заре и искривлял дефолтную локаль ради своей говнософтины.

                    > не говоря уже о том что бы понять проблему
                    лол, илитненько.
                    разочарую, обезьянка думает, что сделала открытие, а на самом деле просто пачкает клавиатуру, не разобравшись к концепции.
                    Ответить
          • Сам так матерюсь, когда электронная таблица при вводе или импорте неожиданно преобразовывает числа в даты.
            Ответить
          • Это литералы в коде. А речь про строки, в которых записаны числа:
            '10.5'
            '10,5'
            Вопрос: как узнать, какой разделитель предпочитает пользователь?
            Ответить
            • Обычно зависит от страны пользователя.
              А еще ему можно дать возможность выбрать эту конфигурацию в настройках
              Ответить
              • Эта самая настройка и есть локаль, она распространяется на всю систему (хотя можно заоверрайдить конфиги локали для отдельной программы, а ещё браузер может отправлять серверу данные о локали, не являющейся текущей). Системной локалью можно сконфигурить предпочитаемый язык, кодировку, представление чисел, дат, порядок сортировки строк и т.д.
                Проблема в том, что большинство юзеров знать не знают о локалях. А вот программистам знать об этом нужно.
                Ответить
        • что не так?


          Человек написал функцию `isTsyfra` с поддержкой ваще любого разделителя
          Ответить
          • ну, во-первых, не понял, почему нельзя полагаться на правильно выставленную локаль

            во-вторых, если делаете софт для америкашки, то и рассчитывайте сразу на местную локаль

            с другой стороны, откуда в Германии хорошие программисты
            Ответить
  • По моему не только сказки... ему вообще ничего не рассказывали )
    Ответить
  • з)F(N W?T:U,P,RH$Q?L(C$Y:Q H)B)D L:C$X"I?K Q$Z)D(A$A!C,M N?X"Q!Q:H)C$S(I(B)Z.DX E.D)D"A(Z G!P(E?O!W(U I"S F.X?Q$M!I?W,N K,S$B N!O(E EЬJDFOSJDPWEIATWZNMNSSJYHIMUDDXHWIQGODIXMCRDKRWNVRSWMJLMDEPCYZWUNKBZOCTRTABPAXJGWXZKNITOHTTJXKWYJOCVCVUUFALOQTUHWGLRXLAHFARMRYWLOMGGBIOQTGQEEHMFHPOMQJQMZILTHUYEYHGDBKZIVSLPPBPJUQZRHYCMYXGLLAWISAIEZJWKVWMRWDGPEBOWXUFFOLABVJNDSIEUOOBYHCISSVFVSJBQVZLQYBGNMUOGUAVLKPFXWUBHOLOWPSLMESH
    Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8