|
|
|
| Приветствую вас господа програмеры!
Помогите составить формулу расчета стоимости хостинга . в текстовое поле вводится размер дискового пространства в мегабайтах , нужно расчитать из такого расчета что первые 50 метров стоят 5 долларов ,дальше 100 метров - 6 баксов , 300 метров-8 баксов , 500 метров - 18 баксов , 1000 метром-30 баксов, потолок цены - 40 баксов за максимальный размер диска . максимальный размер заказываемого дискового пространства имеет переменное значение и является переменной . | |
|
|
|
|
|
|
|
для: dimon4ik
(18.06.2008 в 05:45)
| | Не видно никакой закономерности. | |
|
|
|
|
|
|
|
для: BinLaden
(18.06.2008 в 10:09)
| | Вот я тоже читал это, читал, так и не понял. Если я закажу 300 метров, то что считать: 5 за первых 50, плюс 6 за последующие 100, и плюс 8 за 300. Или всетаки 8? Интересный хостинг, с "бухгалтерским" уклоном.) | |
|
|
|
|
|
|
|
для: sim5
(18.06.2008 в 10:13)
| | Все должно быть очень просто . например юзер заказывает 70 метров , то заплатить ему нужно будет 5 баксов + разница в процентном соотношение от 1 бакса .
соответсвенно если он заказывает 230 метров то платит 6 + разница от 8 , все что больше 1000 метров должно исчислятся из расчета 30 центов за 10 метров . | |
|
|
|
|
|
|
|
для: dimon4ik
(18.06.2008 в 15:49)
| | А если я закажу 35 метров 17 сантиметров? Килобайты тоже считать будете? | |
|
|
|
|
|
|
|
для: sim5
(18.06.2008 в 17:04)
| | Вы шутите наверное ?
возможно только целое число ! | |
|
|
|
|
|
|
|
для: dimon4ik
(18.06.2008 в 17:50)
| |
if($vol <=50) $cost = $vol * 5 / 50;
else if($vol < 100) $cost = 5 + ($vol - 50) * ( 6 - 5) / ( 100 - 50);
else if($vol < 300) $cost = 6 + ($vol - 100) * ( 8 - 6) / ( 300 - 100);
else if($vol < 500) $cost = 8 + ($vol - 300) * (18 - 8) / ( 500 - 300);
else if($vol < 1000) $cost = 18 + ($vol - 500) * (30 - 18) / (1000 - 500);
else if($vol < $max) $cost = 30 + ($vol - 1000) * (40 - 30) / ($max - 1000);
else $cost = 0;
|
| |
|
|
|
|
|
|
|
для: Trianon
(18.06.2008 в 18:08)
| | Нет , Trianon , фигня какая-то получается , вот поглядите сами :
function update_price()
{
var price = 0;
var price1 = 0;
var price6 = 0;
var p_disk = 0 + document.getElementById ('p_disk').value;
// compute price
price = 0;
if (p_disk <=50 && p_disk>0) price = p_disk * 5 / 50;
if (p_disk < 100 && p_disk>0) price = 5 + (p_disk - 50) * ( 6-5) /( 100 - 50);
if(p_disk < 300 && p_disk>0) price = 6 + (p_disk - 100) * ( 8 - 6) / ( 300 - 100);
if (p_disk < 500 && p_disk>0) price = 8 + (p_disk - 300) * (18 - 8) / ( 500 - 300);
if (p_disk < 1000 && p_disk>0) price = 18 + (p_disk - 500) * (30-18) /(1000 - 500);
if(p_disk < 35000) price = 30 + (p_disk - 1000) * (40 - 30) / (35000 - 1000);
price = Math.round (price);
price1 = Math.round (price * 1.2);
price6 = Math.round (price * 1.1);
document.getElementById ('price_total_12').innerHTML = '' +price;//Цена за 12 мес. в $
document.getElementById ('price_total_6').innerHTML = '' + Math.round (price6);//Цена за 6 мес. в $
document.getElementById ('price_total_1').innerHTML = '' + Math.round (price1);Цена за 1 мес. в $
update_price();
</script>
|
| |
|
|
|
|
|
|
|
для: dimon4ik
(18.06.2008 в 19:17)
| | добавил сверху строку <script>, поглядел. Пустая страница. | |
|
|
|
|
|
|
|
для: dimon4ik
(18.06.2008 в 19:17)
| | между прочим. Вы зачем-то выкинули все else . Логика всех строк, кроме if(p_disk < 35000) оказалась выброшенной.
Так что фигню устроил не я. | |
|
|
|
|
|
|
|
для: Trianon
(18.06.2008 в 19:23)
| | Да Трианон , это я протупил , респект и уважуха вам !!!
но вот еще есть вопрос !
как сделать что-б цена для price и для price6 выводилась с учетом скидки в 15 и 20 процентов соответственно .
price = Math.round (price);
price1 = Math.round (price);
price6 = Math.round (price);
|
| |
|
|
|
|
|
|
|
для: dimon4ik
(18.06.2008 в 20:21)
| | скидки в 15 ............ Math.round (price*0.85);
и 20 процентов .... Math.round (price*0.8); | |
|
|
|
|
|
|
|
для: dimon4ik
(18.06.2008 в 20:21)
| |
price1 = Math.round (price*(1-0.15));
price6 = Math.round (price*(1-0.20));
|
| |
|
|
|
|
|
|
|
для: Trianon
(18.06.2008 в 20:31)
| | спасибо , то что надо !
а подскажите еще , как сделать чтобы округлялось не-до целого числа а до 2 знаков после запятой . | |
|
|
|
|
|
|
|
для: dimon4ik
(18.06.2008 в 20:52)
| | До округления умножьте на сто.
Округлите.
Результат разделите на сто. | |
|
|
|
|
|
|
|
для: dimon4ik
(18.06.2008 в 20:52)
| |
price = price*(1-0.15);
price.toFixed(2);
|
| |
|
|
|