Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> nie rozumiem dzialania parseInt...., Problrem z parseInt()
Epoxy
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 16.11.2005

Ostrzeżenie: (0%)
-----


Witam wszystkich,

mam pewien problem z dzialaniem funkcji parseInt() :

aby wyjasnic posluze sie niewielkim kodem :

Kod
<script type="text/javascript">
function toInt(){
var str = document.getElementById('edit').value;
strValue = parseInt(str);
document.getElementById('check1').value = str+"->"+strValue;
}
</script>

<FORM NAME="forms">
<INPUT type='text' name="edit" id="edit" onkeyup="toInt()" size="10">
<INPUT type='text' name="check1" id="check1" disabled size='10'><br>
</FORM>


Dla wartosci 08 i 09 funkcja zwraca 0 (sprawdzenie w IE i FF), natomiast w Operze dziala OK! Dodam jeszcze ze dla wartosci 01...07 wynik jest poprawny(to znaczy zgodny z oczekiwaniami (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) wszedzie . Gdzie lezy problem (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ten post edytował Epoxy 16.11.2005, 19:53:03
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
FiDO
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


Jesli w parsowanym stringu na poczatku jest zero to traktowany on jest jak by byl w systemie osemkowym, dlatego dzialaja tylko cyfry do 7. Zeby traktowac ta liczbe jako dziesietna musisz usunac te zero z przodu.
Go to the top of the page
+Quote Post
Epoxy
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 16.11.2005

Ostrzeżenie: (0%)
-----


Dziekuje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) dziala , parseInt() ma jeszce jeden parametr okreslajacy system liczbowy - wystarczylo ustawic dziesietny.
Go to the top of the page
+Quote Post
polibode
post
Post #4





Grupa: Zarejestrowani
Postów: 232
Pomógł: 1
Dołączył: 11.03.2003

Ostrzeżenie: (20%)
X----


używam 3 pól input i zamieniam na parseFloat

  1. form.elements[4].value = parseFloat(form.elements[0].value) + parseFloat(form.elements[2].value);


Za pierwszym razem wpisuję wartości w te pola w polu wynikowych jest wartość zmiennoprzecinkowa np 23.7 = 21.6 + 2.1

Natomiast kiedy ponownie zachce mi się zmienić wartośc w jednym z pól (inputowych) wartośc wynikowa przyjmuje postać ciągu 23.7000000001 .
Jak się zabezpieczyć na tę ewentualność.
Najśmieszniejsze jest tylko , że głupieje to dla dwóch wartości po przecinku (jeśli umieszczę 4 lub cyfrę 9)

Dlaczego?

Ten post edytował polibode 24.11.2005, 19:07:44
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 12:54