Zaokrąglenie liczby po wykonaniu doejmowania.

0

Witam

Szukam pomocy jak zaokrąglić liczbę zmienoprzecinkową do 3 miejsc po kropce.

Fragment kodu


            $("#energia_cieplnaGJ").text(users[ 0 ].energia_cieplnaGJ); // 123.288 
            $("#energia_cieplnaGJ1").text(users[ 1 ].energia_cieplnaGJ); //123.277
           
            
            
           $("#kw").text((users[ 0 ].energia_cieplnaGJ)-(users[ 1 ].energia_cieplnaGJ)); ///tutaj dostaję wynik 0.01099999999999568 

Z góry dziekuje za wszelka pomoc.

0

Próbowałem to zrobić tak

$("#kw").text((users[ 0 ].energia_cieplnaGJ)-(users[ 1 ].energia_cieplnaGJ)).toFixed(2);

niestety to nie pomogło albo nie potrafię tego zastosować.

0

Nie mogę uzyc funkcji toFixed jeśli wczeniej było robione dzielenie /3600000

0

to znaczy zaokrągla ale wyświetla 0.000

Fragment kodu

            //(((users[ 0 ].energia_cieplnaGJ)-(users[ 1 ].energia_cieplnaGJ))/3600000);
           max=((users[ 0 ].energia_cieplnaGJ)-(users[ 1 ].energia_cieplnaGJ));
            max1=((users[ 0 ].energia_cieplnaGJ)-(users[ 1 ].energia_cieplnaGJ))/3600000;
             max2 = max1.toFixed(2);
           
             a=(users[ 0 ].energia_cieplnaGJ);
            b = (users[ 1 ].energia_cieplnaGJ);
            c = (a-b).toFixed(3); 
            d = (c / 3600000);
            e = (d.toFixed(3));


             $("#kw").text(((((users[ 0 ].energia_cieplnaGJ)-(users[ 1 ].energia_cieplnaGJ))/3600000))); ///tutaj dostaję wynik 0.01099999999999568 
          
           $("#kw3").text(e);
0

Po grzyba ci tyle nawiasów?
Rozbij sobie tego kombosa na poszczególne etapy. Dodaj zmienną pośrednią.

0

To nie w nawiasach jest problem

Obecny kod

             /
             a = 123.288;
            b = 123.277;
            c = (a-b); 
            d = (c / 3600000);
            e = (d).toFixed(3);
       
          
           $("#kw3").text(e);

Problem chyba polega na wyświetalniu tej liczby.

0

Tutaj jak odejmiesz 123.288 - 123.277 to masz 0.011 jak to jeszcze podzielisz na 3600000 to na pewno nie złapiesz się na 2 czy 3 miejsca po przecinku.
Możesz wybierz sobie do testów inny przykład.

0

Potrzebuje to właśnie zaokrąglić do 3 miejsc po przecinku

5

Możesz pomnożyć liczbę przez odpowiednią potęgę 10 (czyli jak do 3 miejsc po przecinku, to mnożysz przez tysiąc), następnie zaokrąglić za pomocą Math.round, a potem podzielić przez tę samą liczbę, co mnożyłeś:

Math.round(3.141592653589793 * 1000) / 1000

i wychodzi: 3.142

A co do toFixed to trzeba uważać, bo zamienia liczbę na string.
i jak potem coś dodasz, to doda się stringowo, np.
(2.0202).toFixed(2) + 123
równa się "2.02123" (niepoprawnie matematycznie, ale to już nie jest liczba, tylko string), a nie 125.02
więc to jest wygodne bardziej do wyświetlania. Ale jeśli tylko wyświetlasz, to jest okej

0

Tylko probleme jest dzielenie i wyświetlanie.

123.288 - 123.277 = 0.011
0.011 / 3600000 = 3.0555555555555555e-9.

Nie znalazłem funkcji ktura by zamieniała liczbę wykładnicza na np 3.06

0

Ale zmiana wykładnika nie ma nic do zaokrąglenia liczby do jakiegoś miejsca po przecinku.
Co chcesz uzyskać?

0

Chce uzyskać taki wynik

0.011 / 3600000 = 3.06

0

Obecny wynik to

0.011 / 3600000 = 3.0555555555555555e-9

1

No ale to nie jest matematycznie prawda. Zastanów się nad tym problemem ponownie.

0

Tutaj mam przelicznik wartości.

Chce uzyskac wynik jak na zdjęciu 3.06kwh

screenshot-20210228215001.png

1

No to w którymś miejscu walnąłeś się w jednostkach i tyle.
Na screenie wprowadzasz GigaDżule. Czyli
Giga to 10^9 czyli 0.11 x10^9 = 11 x 10^7;
A liczysz jak dla Dżula
1 J = 1/3600000 kWh

0

Znalazłem na innym forum sposób obliczania GJ na kwh

screenshot-20210228221042.png

0

a czy jest jakas funkcja która by dopisywała zera do liczby.

np. mam liczbę 123, po wykonaniu funkcji wyszła by 123000000

2

Nie ma, bo to matematycznie nie prawda! Możesz sobie tą liczbę pomnożyć przez 100 000 ale to nie to samo.
Jak robisz kalkulator to on ma działać poprawnie, a nie brać sobie jakieś zera z kosmosu. Gdzieś mylisz się w jednostkach i dlatego masz złe wyniki.
Wykonaj ręcznie obliczenia. Jak będą się zgadzać to będziesz wiedział co wpisać. Jak obliczenia są złe to się automagicznie nic nie przeliczy.

2
tom1234 napisał(a):

a czy jest jakas funkcja która by dopisywała zera do liczby.

Tak. To się nazywa mnożenie :D
Przepraszam, nie mogłem się powstrzymać. Problemem u Ciebie nie jest programowanie. Spojrzyj na swoje zadanie z matematycznej perspektywy, i skoro potrzebujesz liczbę o parę zer większą, to po prostu przy dzieleniu zmniejsz/zwiększ liczbę zer dzielnika wg potrzeby.

1 użytkowników online, w tym zalogowanych: 0, gości: 1