JQuery округляет деньги/валюту до двух десятичных знаков

Как округлить сумму денег до двух десятичных знаков, используя арифметическое соглашение, которое

167 7451 округляется до 167,75

12,1819784 округляется до 12,18

Заметьте, что я хочу сделать это арифметически и возвращать float, а не строку, поэтому простые решения для форматирования не являются тем, что я ищу.

До сих пор я нашел следующее:

amount = 167.7451;
rounded = (amount.toFixed(2));
alert(rounded);

однако результат toFixed() - это строка, поэтому, если мне нужно сделать больше вычислений, мне нужно снова проанализировать строку для float.

Вместо этого метод .toPrecision хочет знать, сколько цифр мне нужно, чтобы округлить сумму до двух десятичных знаков, которые мне нужны:

amount = 167.7451;
alert(amount.toPrecision(5));

что смешно, потому что мне нужно сначала узнать, сколько цифр у меня есть до десятичных знаков.

Ответ 1

167.7451 is rounded to <span class="result1"></span>
<br>By adding 10 result is: <span class="result2"></span>
<br>By adding rounded 0.254999 result is: <span class="result3"></span>

<script type="text/javascript">
    window.jQuery(document).ready(function($){
        function my_round(num) {
            return Math.round(num * 10 * 10) / 100;
        }

        var amount = 167.7451,
            amount1 = my_round(amount),
            amount2 = amount1 + 10,
            amount3 = amount2 + my_round(0.254999);


        window.jQuery('.result1').text( amount1 );
        window.jQuery('.result2').text( amount2 );
        window.jQuery('.result3').text( amount3 );
    });
</script>

Обновленный код должен работать.