Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Калькулятор+расщет (https://javascript.ru/forum/css-html/10899-kalkulyator-rasshhet.html)

sergey-16a1 27.07.2010 15:04

Калькулятор+расщет
 
Подскажите, плиз, как правильно, надо задать условия, например:
цена (от 1-5) = 2500,
цена (от 6-10) = 2000,
цена (больше 10) = 1800.

Skipp 27.07.2010 15:08

if(count>0 && count<6)
price = 2500;

sergey-16a1 27.07.2010 15:32

а так модно?
if (l>5)
{ l1 = 5;
if (l>20)
{ l6=20;
if (l>50)
{ l21 = 50;
if (l>100)
{ l101 = l-100;}
else
l51 = l-50;}
else
l21 = l-20;}
else
l6 = l-5;}

Skipp 27.07.2010 15:44

ужас)

sergey-16a1 27.07.2010 18:45

Вот, то, что я написал, все работает, только, если идет расщет до 20 услуг все работает, а после 20, отклоняется, то есть неправильно считает, отклоняется на 5%.
function calculateAll()
{
FullCalcSum=DeloCalcSum;
var m;
var l1=0; var l6=0; var l21=0; var l51=0; var l101=0;
var l=0;
if (document.getElementById('delo').checked)
l+=Number(document.getElementById('deloQ').value);
if (document.getElementById('deloWeb').checked)
l+=Number(document.getElementById('deloWebQ').valu e);
if (l>5)
{ l1 = 5;
if (l>20)
{ l6=20;
if (l>50)
{ l21 = 50;
if (l>100)
{ l101 = l-100;}
else
l51 = l-50;}
else
l21 = l-20;}
else
l6 = l-5;}
else
l1=l;
switch (document.getElementById('cash').selectedIndex)
{
case 0: m=1; break;
case 1: m=Number(document.getElementById('convd').getAttri bute('value')); break;
case 2: m=Number(document.getElementById('convh').getAttri bute('value')); break;
}
var cost;
if (document.getElementById('deloInstServ').checked)
{
cost=Math.ceil(document.getElementById('deloInstSe rv').getAttribute('value')*m);
FullCalcSum+=cost;
document.getElementById('delo$5').innerHTML=vcash( cost);
}
else
document.getElementById('delo$5').innerHTML='&nbsp ;';
if (document.getElementById('deloInstAdm').checked)
{
cost=Math.ceil(document.getElementById('deloInstAd m').getAttribute('value')*m* (l1 + l6 * 0.9 + l21 * 0.8 + l51 * 0.7 + l101 * 0.6));
FullCalcSum+=cost;
document.getElementById('delo$6').innerHTML=vcash( cost);
}
else
document.getElementById('delo$6').innerHTML='&nbsp ;';


ShowCalcResult();
}

JsLoveR 27.07.2010 20:33

Цитата:

Сообщение от sergey-16a1
var l1=0; var l6=0; var l21=0; var l51=0; var l101=0;

Цитата:

Сообщение от sergey-16a1
if (l>5)
{ l1 = 5;
if (l>20)
{ l6=20;
if (l>50)
{ l21 = 50;
if (l>100)
{ l101 = l-100;}
else
l51 = l-50;}
else
l21 = l-20;}
else
l6 = l-5;}
else
l1=l;

:blink:

Skipp 28.07.2010 09:28

sergey-16a1,
отформатируйте текс, для этого есть специальные теги.
А то смотреть невозможно.

subzey 28.07.2010 13:54

А так не пойдет? :)
var price = (count <= 5) ? 2500 : (count <= 10) ? 2000 : 1800;


Часовой пояс GMT +3, время: 07:16.