Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
3. Всегда писать что-либо вежливое в тексте письма, например, «Пожалуйста, проигнорируйте это тестовое сообщение». Нежелательно писать что-то вроде «Мой клиент — дурень» — мало ли это прочитают 20 тысяч ничего не подозревающих инвесторов.
3. Всегда писать что-либо вежливое в тексте письма, например, «Пожалуйста, проигнорируйте это тестовое сообщение». Нежелательно писать что-то вроде «Мой клиент — дурень» — мало ли это прочитают 20 тысяч ничего не подозревающих инвесторов.
Я поразмыслил над этим случаем и установил, что следует:Как я вас понимаю… У самого после ночных бдений порой случаются «провалы», но отучить себя от этого не выходит…
1. Избегать работать поздно ночью
SET time_zone = timezone;Всегда писать что-либо вежливое в тексте письма, например, «Пожалуйста, проигнорируйте это тестовое сообщение». Нежелательно писать что-то вроде «Мой клиент — дурень» — мало ли это прочитают 20 тысяч ничего не подозревающих инвесторов.
switch ($_SERVER['SERVER_NAME']) {
case 'www.site.com':
case 'site.com':
case 'aliasOfsite.com':
define('MODE', "production");
break;
default:
define('MODE', "development");
break;
}
function GetMoney (amount) {
var pounds = Math.floor (amount);
var pence = Math.floor (amount * 100) % 100;
return pounds + '.' + (pence < 10 ? '0' : '') + pence;
}
alert (GetMoney (4.9995) + ' ' + GetMoney (0.1 * 0.7));
3. Избегайте представления цен с помощью переменных формата float, если это возможно. Вместо этого для пенсов и центов используйте целые числа, а в базах данных используйте тип переменных с фиксированной запятой — DECIMAL.Удивительно, но эта ошибка встречается очень часто (слишком часто!) и приводит к очень неприятным последствиям.
Теперь у меня было четыре строчки весьма сложного кода, чтобы сделать одну очень простую вещь. Сегодня, пока я писал эту статью, я обнаружил встроенную в Javascript функцию, которая справится со всем этим:Автор (оригинала) явно неполноценно тестировал то, что написал и не знает про баг с функцией toFixed() :)
<script type="text/javascript"> function GetMoney (amount) {return amount.toFixed (2);} alert (GetMoney (4.9995) + ' ' + GetMoney (0.1 * 0.7)); </script>
alert([1.1255.toFixed(3), 0.1255.toFixed(3)]) // 1.125,0.126 - FF5, Chrome12, Opera 11.5
</script> — на данный момент даёт ошибку в FF5, Chrome12, Opera 11.5. Не даёт ошибки в IE8, Safari5.<script>
function GetMoney (amount) {return amount.toFixed(2);}
alert([GetMoney(1.155), GetMoney(0.155)]) // 1.16,0.15 - FF5, Chrome12
</script>
Мои любимые ошибки в программировании