Калькулятор округляет

volodka993

Постоялец
Регистрация
25 Май 2014
Сообщения
60
Реакции
28
Здравствуйте
Имеется калькулятор расчет секций радиаторов.
Задаются значения ПЛОЩАДИ и ВЫСОТЫ, так же имеется константа 34 вт
Калькулятор округляет числа до целых.
Например:

Площадь - 10м
Высота - 3м

10м*3м*34вт=1020ВТ

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

Скрипт
Код:
  $('.rad_calc .gray').click(function(){
        var constVT = 33;
        var heatOne = 140;
        var heatAll = $('.rad_calc .heat_all').html();
        var cntSection = $('.rad_calc .cnt_section').html();
        var square = $('.rad_square').val();
        var height = $('.rad_height').val();

      
        if(square !== undefined && height !== undefined && heatAll !== undefined){
            square = parseInt(square);
            height = parseInt(height);

            //если есть свойства теплоотдача и кол-во секций, вычисляем теплоотдачу одной секции
            if(heatAll !== '' && cntSection !== ''){
                heatAll = parseFloat(heatAll);
                cntSection = parseInt(cntSection);
                heatOne = heatAll / cntSection;
            }

            var volume = square * height;
            var heat = volume * constVT;
            var sectionCount = Math.ceil(heat / heatOne);
          
            $('.rad_heat i').html(heat);
            $('.rad_cnt i').html(sectionCount);

        }
        return false;
    });


HTML
HTML:
                            <div class="green bold">Калькулятор расчёта количества секций <div class="hint" title="Калькулятор"></div></div>
                        </div>
                    </div>
                    <div class="mid bg_white">
                        <div class="left f14 c333">Площадь<br/> помещения м2</div>
                        <input class="rad_square number left f13 c666 center inp" value="1" type="text">
                        <div class="left f14 c333">Высота<br/> потолка м</div>
                        <input class="rad_height float left f13 c666 center inp" value="1" type="text">
                        <a href="#" class="btn middle_btn right gray">Рассчитать</a>
                        <div class="heat_all invisible"><?=$arResult['PROPERTIES']['C_ALL_TEPLOOTDACHA']['VALUE']?></div>
                        <div class="cnt_section invisible"><?=$arResult['PROPERTIES']['C_ALL_KOLICHESTVO_SEKTSIY']['VALUE']?></div>
                        <div class="clear"></div>
                    </div>
                    <div class="bot">
                        <div class="inline rad_heat f14 c333 bold">Теплоотдача: <span class="lgreen"><i>0</i> Вт</span></div>
                        <div class="inline rad_cnt f14 c333 bold">Кол-во секций: <span class="lgreen"><i>0</i> шт</span></div>
                    </div>
                </div>
 
Калькулятор округляет числа до целых.
parseInt округляет, вернее не округляет, а возвращает число перед точкой... Касаемо вашего примера, вот здесь:
height = parseInt(height);

Используйте parseFloat
height = parseFloat(height);
 
Работает благодарю, а округление в теплоотдаче как сделать .toFixed(2) не срабатывает
 
Работает благодарю, а округление в теплоотдаче как сделать .toFixed(2) не срабатывает
Округления разные бывают)
До ближайшего целого числа - Math.round
В большую сторону - Math.ceil
В меньшую - Math.floor или дважды побитовая инверсия еще удобно. Т.е.
var a = 7.8;
alert(~~a) // выведет 7
 
Назад
Сверху