Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Немного математики .
 
 автор: dimon4ik   (18.06.2008 в 05:45)   письмо автору
 
 

Приветствую вас господа програмеры!
Помогите составить формулу расчета стоимости хостинга . в текстовое поле вводится размер дискового пространства в мегабайтах , нужно расчитать из такого расчета что первые 50 метров стоят 5 долларов ,дальше 100 метров - 6 баксов , 300 метров-8 баксов , 500 метров - 18 баксов , 1000 метром-30 баксов, потолок цены - 40 баксов за максимальный размер диска . максимальный размер заказываемого дискового пространства имеет переменное значение и является переменной .

   
 
 автор: BinLaden   (18.06.2008 в 10:09)   письмо автору
 
   для: dimon4ik   (18.06.2008 в 05:45)
 

Не видно никакой закономерности.

   
 
 автор: sim5   (18.06.2008 в 10:13)   письмо автору
 
   для: BinLaden   (18.06.2008 в 10:09)
 

Вот я тоже читал это, читал, так и не понял. Если я закажу 300 метров, то что считать: 5 за первых 50, плюс 6 за последующие 100, и плюс 8 за 300. Или всетаки 8? Интересный хостинг, с "бухгалтерским" уклоном.)

   
 
 автор: dimon4ik   (18.06.2008 в 15:49)   письмо автору
 
   для: sim5   (18.06.2008 в 10:13)
 

Все должно быть очень просто . например юзер заказывает 70 метров , то заплатить ему нужно будет 5 баксов + разница в процентном соотношение от 1 бакса .
соответсвенно если он заказывает 230 метров то платит 6 + разница от 8 , все что больше 1000 метров должно исчислятся из расчета 30 центов за 10 метров .

   
 
 автор: sim5   (18.06.2008 в 17:04)   письмо автору
 
   для: dimon4ik   (18.06.2008 в 15:49)
 

А если я закажу 35 метров 17 сантиметров? Килобайты тоже считать будете?

   
 
 автор: dimon4ik   (18.06.2008 в 17:50)   письмо автору
 
   для: sim5   (18.06.2008 в 17:04)
 

Вы шутите наверное ?
возможно только целое число !

   
 
 автор: Trianon   (18.06.2008 в 18:08)   письмо автору
 
   для: 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;

   
 
 автор: dimon4ik   (18.06.2008 в 19:17)   письмо автору
 
   для: 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>

   
 
 автор: Trianon   (18.06.2008 в 19:21)   письмо автору
 
   для: dimon4ik   (18.06.2008 в 19:17)
 

добавил сверху строку <script>, поглядел. Пустая страница.

   
 
 автор: Trianon   (18.06.2008 в 19:23)   письмо автору
 
   для: dimon4ik   (18.06.2008 в 19:17)
 

между прочим. Вы зачем-то выкинули все else . Логика всех строк, кроме if(p_disk < 35000) оказалась выброшенной.
Так что фигню устроил не я.

   
 
 автор: dimon4ik   (18.06.2008 в 20:21)   письмо автору
 
   для: Trianon   (18.06.2008 в 19:23)
 

Да Трианон , это я протупил , респект и уважуха вам !!!
но вот еще есть вопрос !
как сделать что-б цена для price и для price6 выводилась с учетом скидки в 15 и 20 процентов соответственно .

price = Math.round (price); 
price1 = Math.round (price); 
price6 = Math.round (price);

   
 
 автор: AlexSol   (18.06.2008 в 20:30)   письмо автору
 
   для: dimon4ik   (18.06.2008 в 20:21)
 

скидки в 15 ............ Math.round (price*0.85);
и 20 процентов .... Math.round (price*0.8);

   
 
 автор: Trianon   (18.06.2008 в 20:31)   письмо автору
 
   для: dimon4ik   (18.06.2008 в 20:21)
 

price1 = Math.round (price*(1-0.15)); 
price6 = Math.round (price*(1-0.20));

   
 
 автор: dimon4ik   (18.06.2008 в 20:52)   письмо автору
 
   для: Trianon   (18.06.2008 в 20:31)
 

спасибо , то что надо !
а подскажите еще , как сделать чтобы округлялось не-до целого числа а до 2 знаков после запятой .

   
 
 автор: Trianon   (18.06.2008 в 21:03)   письмо автору
 
   для: dimon4ik   (18.06.2008 в 20:52)
 

До округления умножьте на сто.
Округлите.
Результат разделите на сто.

   
 
 автор: sim5   (18.06.2008 в 21:09)   письмо автору
 
   для: dimon4ik   (18.06.2008 в 20:52)
 

price = price*(1-0.15);
price.toFixed(2);

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования