• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

zaokrąglanie do dwóch liczb po przecinku w JavaScript

Object Storage Arubacloud
0 głosów
4,800 wizyt
pytanie zadane 31 stycznia 2018 w JavaScript przez drzwi od kibla Nowicjusz (160 p.)

Nie działa mi zaokrąglanie do dwóch miejsc po przecinku. Normalnie wyświetla mi liczbę z wieloma cyframi po przecinku, a gdy użyję Math.random(x*100)/100 lub zamiast 100 dam większą liczbę, to i tak po przecinku pojawia się jedna cyfra. Napisałem również funkcję

function round(value, decimals){
			return Number(Math.round(value + "e"+decimals)+"e-"+decimals);
		}

i wynik jest taki sam, czyli jedna cyfra po przecinku. Dopiero użycie funkcji toFixed(2) działa prawidłowo. Jednakże chciałbym uzyskać to za pomocą Math.random, lecz nie wiem dlaczego nie działa.

 

Poniżej zamieszczam kod:

var wynik_div = document.getElementById('wynik');
			function oblicz(){
				var liczba = document.getElementById("liczba_ogłoszeń").value;
				var upust = document.getElementById("subskrypcja");
			
			
				if(liczba >= 1 && liczba <= 10){
					if(upust.checked){
						var cena = (liczba*1)-(liczba*0.20);
					}else{
						var cena = liczba*1;
					}
				}else if(liczba>=11 && liczba <= 50){
					if(upust.checked){
						var cena = (liczba*0.80) - (liczba*0.20);
					} else {
						var cena = liczba*0.80;
					}
				}else {
					if(upust.checked){
						var cena = (liczba*0.60)-(liczba*0.20);
					} else {
						var cena= liczba*0.60;
					}
				}
				
				wynik_div.innerHTML = Math.round(cena*100)/100;
			}
			

 

komentarz 31 stycznia 2018 przez drzwi od kibla Nowicjusz (160 p.)
Tutaj zamieszczam cały kod HTML:

 

http://pastebin.pl/view/e4bbf8d7

1 odpowiedź

0 głosów
odpowiedź 31 stycznia 2018 przez drzwi od kibla Nowicjusz (160 p.)

Dodałem do funkcji metodę toFixed i teraz dziala. Pytanie tylko, czy moja funkcja jest teraz poprawna? Nie używam samego toFixed(2), bo podobno w niektórych sytuacjach funkcja ta zwraca niepoprawny wynik, dlatego napisałem swoją funkcję i dodałem do zwracanego wyniku metodę toFixed.

function round(value, decimals){
			return Number(Math.round(value + "e"+decimals)+"e-"+decimals).toFixed(decimals);
		}

 

 

Podobne pytania

+1 głos
2 odpowiedzi 640 wizyt
pytanie zadane 14 października 2021 w JavaScript przez Admak Początkujący (340 p.)
0 głosów
1 odpowiedź 174 wizyt
pytanie zadane 11 stycznia 2020 w JavaScript przez Raivik Nowicjusz (150 p.)
0 głosów
7 odpowiedzi 2,020 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...