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

Problem podczas zamiany liczby ujemnej na dodatnią.

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
+1 głos
450 wizyt
pytanie zadane 19 listopada 2023 w JavaScript przez Kczor Nowicjusz (130 p.)

Mam problem, ponieważ przy zamianie liczby z dodatniej na ujemną wszystko idzie ładnie, ale przy zamianie z ujemnej na dodatnią wyskakuje mi błąd Not A Number. Jest to spowodowane przez nawiasy, lecz te nawiasy niestety są obowiązkowe przy ujemnej liczbie. Macie jakiś pomysł jak zamienić na liczbę dodatnią i usunąć nawiasy oraz znak - przy zamianie z liczby ujemnej na dodatnią?

 

function przeciwnaL() {
            var aktualna = document.getElementById('wprowadzanie').value;
            if (aktualna.length > 0) {
                var ostatniaLiczba = parseFloat(aktualna);
                var nowaLiczba = -1 * ostatniaLiczba;
                var nowyCiag;
            if (nowaLiczba < 0) {
                nowyCiag = "(" + nowaLiczba + ")";
            } else {
                nowyCiag = nowaLiczba.toString();
            }
                nowyCiag = aktualna.slice(0, -ostatniaLiczba.toString().length)+nowyCiag;
                document.getElementById('wprowadzanie').value = nowyCiag;
            }
        }
komentarz 19 listopada 2023 przez Comandeer Guru (606,240 p.)
Nie bardzo rozumiem, czemu nawiasy są obowiązkowe i czemu to one miałyby powodować problem, skoro nie biorą udziału w konwersji liczby? Mógłbyś pokazać całość?
komentarz 19 listopada 2023 przez reaktywny Nałogowiec (44,760 p.)
Ósma linia:

nowyCiag = "(" + nowaLiczba.toString() + ")";
komentarz 19 listopada 2023 przez Kczor Nowicjusz (130 p.)

@Comandeer, cały kod?

EDIT:
Ponieważ jest to zadanie w którym są wymagane ,aby przy zamianie liczba ujemna była w nawiasach.

Kod: https://pastebin.com/CmYyG6eT

komentarz 19 listopada 2023 przez Comandeer Guru (606,240 p.)
Tak, bo u mnie ta funkcja tak na oko działa.
komentarz 19 listopada 2023 przez Kczor Nowicjusz (130 p.)
komentarz 19 listopada 2023 przez Kczor Nowicjusz (130 p.)
Wraz z CSS bo zapomniałem

https://pastebin.com/tfB9Gwji

1 odpowiedź

0 głosów
odpowiedź 19 listopada 2023 przez Comandeer Guru (606,240 p.)

Ok, błąd jest spowodowany tym, że do liczby ujemnej dodajesz nawiasy i potem parseFloat() zwraca NaN dla ciągów typu "(-4)". Nie bardzo rozumiem, czemu te nawiasy tam muszą być? Bez nich całość powinna działać tak samo dobrze.

komentarz 19 listopada 2023 przez Kczor Nowicjusz (130 p.)
Ponieważ takie mamy postawione wymagania zadania ,że liczby ,które są ujemne mają być w nawiasie
komentarz 19 listopada 2023 przez Comandeer Guru (606,240 p.)

No to w takim razie przed odpaleniem parseFloat() trzeba te nawiasy usunąć, np. przy pomocy String#replace():

str = str.replace( '(', '' );

 

komentarz 20 listopada 2023 przez VBService Ekspert (256,320 p.)
edycja 20 listopada 2023 przez VBService

Polecam użycie takiego zapisu dla  String.replace  wink

str = str.replace(/[()]/g, '');

 

lub użyć String.split

let str = 'Lorem ipsum dolor sit amet, (consectetur adipiscing) elit.';
str = str.split(/[()]/).join('');
console.log(str);

 

Podobne pytania

0 głosów
1 odpowiedź 710 wizyt
pytanie zadane 13 października 2020 w C i C++ przez kvbq Obywatel (1,490 p.)
+1 głos
2 odpowiedzi 159 wizyt
0 głosów
1 odpowiedź 208 wizyt

93,176 zapytań

142,185 odpowiedzi

321,979 komentarzy

62,506 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 1401p. - dia-Chann
  2. 1380p. - Łukasz Piwowar
  3. 1372p. - CC PL
  4. 1370p. - Łukasz Eckert
  5. 1351p. - Tomasz Bielak
  6. 1328p. - Michal Drewniak
  7. 1312p. - Łukasz Siedlecki
  8. 1302p. - rucin93
  9. 1273p. - Adrian Wieprzkowicz
  10. 1232p. - Mikbac
  11. 1181p. - rafalszastok
  12. 1169p. - Grzegorz Aleksander Klementowski
  13. 1155p. - Piotr Aleksandrowicz
  14. 1149p. - Michał Telesz
  15. 1127p. - Mariusz Fornal
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...