Расчет цены, запятая и условная выписка - PullRequest
1 голос
/ 01 марта 2011

Всевозможные темы посвящены проблеме запятой в Европе, т. Е. Как поменять ',' на '.', Но я пока не нашел решения для моей.чтобы иметь возможность вводить запятую (например, 3,99 ), затем вычислите некоторые вещи и выведите часть снова в запятую.В операторе if следует упомянуть, что если цена в конце (прибыль) становится отрицательной, она становится красной (то есть, НЕ возможна).

Я могу изменить точку на запятую и вывести ее, но, наоборот, я ослеплен.Вот мой код на данный момент:

Мне удалось заставить все это работать на основе комментариев @ Zirak и небольшого количества магии, см. Код ниже!1012 *

Ответы [ 2 ]

0 голосов
/ 02 марта 2011

Как описано выше, возможный способ решения этой проблемы:

function dollarformat(num) {
    num = num.toString().replace(/\u20ac/g, 'Euro');
    if(isNaN(num)) num = "0";
        cents = Math.floor((num*100+0.5)%100);
        num = Math.floor((num*100+0.5)/100).toString();
    if(cents < 10) cents = "0" + cents;
        for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
            num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
    return (num + ',' + cents);}

$('#prijsnow').keyup(function(num) {

        var comma = $(this).val().replace(',', '.');
        $('#vat').text(dollarformat(comma / 119 * 100));
        $('#earnings').text(dollarformat(comma / 119 * 25));
                // 0.80 is the minimum amount, I've put it in hardcode (could be dynamic as well)
        if (comma < 0.80) { $('#earnings').text(0); } else {$('#earnings').text(dollarformat(comma / 119 * 75 - 0.50))};

                // Nice fix for the colour problem, easy CSS attribution
        if (comma < 0.80) { $('#earnings').css("color","red"); } 
        if (comma > 0.80) { $('#earnings').css("color","green"); }

    });
0 голосов
/ 01 марта 2011

Просто глядя на скрипт, у вас не должно возникнуть проблем.

if (/\./.test(num))
    num.replace('.', ',');
//Or if you want the other way around
if (/\,/.test(num))
    num.replace(',', '.');

Для отрицательной цены вы можете использовать класс:

if( $(earnings).val() < 0 )
    $(earnings).addClass('negativeVal');

И в вашем CSS:

.negativeVal {
    color : red;
}

Кроме того, чтобы избавить вас от проблем: вы пытались разделить число, используя split?

...