[js] cijfercheck

Pagina: 1
Acties:

  • bolleh
  • Registratie: Juli 2001
  • Laatst online: 15:02
ik ben dus nog bezig met een schoolproject waar je 4 variabelen kunt invullen, nu MOETEN dat cijfers zijn anders doet de funtie het niet, hoe kan ik checken of het cijfers zijn en zoja dan de funtie laten stoppen?
moet met if en else maar het cijfer checken snap ik niet, nergens gevonden ook.
code:
1
2
3
4
5
6
7
8
9
function bereken()
    {
    beginsaldo=parseFloat(document.rekeningen.getal1.value)
    storten=parseFloat(document.rekeningen.getal2.value)
    rentepercentage=parseFloat(document.rekeningen.getal3.value)
    maanden=parseFloat(document.rekeningen.getal4.value)
    saldo=beginsaldo+(storten*(Math.pow((Math.pow((rentepercentage)/100+1, 1/12)), maanden)))
    window.alert(saldo)
    }

Verwijderd

code:
1
2
3
4
5
6
if(!isNaN(parseFloat(myVar))) {
     /* als het wel een nummer is */
}
else {
     /* als het niet een nummer is */
}

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Op woensdag 14 november 2001 16:16 schreef Blues het volgende:
code:
1
2
3
4
5
6
if(!isNaN(parseFloat(myVar))) {
     /* als het wel een nummer is */
}
else {
     /* als het niet een nummer is */
}
waarom de parseFloat() :?

Today's subliminal thought is:


  • bolleh
  • Registratie: Juli 2001
  • Laatst online: 15:02
Op woensdag 14 november 2001 19:08 schreef Annie het volgende:

[..]

waarom de parseFloat() :?
omdat ie dan een textwaarde omzet naar rekenbare waarde, als het dan een letter is geeft ie NaN terug
thnx blues

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Op donderdag 15 november 2001 08:45 schreef bolleh het volgende:

[..]

omdat ie dan een textwaarde omzet naar rekenbare waarde, als het dan een letter is geeft ie NaN terug
thnx blues
Klopt, maar mij ging het even om de cijfercheck.
"1a" wordt door parseFloat() omgezet naar 1 en zal in de isNaN() check dus true geven (als in: het is een numerieke waarde). Terwijl dat eigenlijk niet zo is.

imho zou het logischer zijn om eerst te checken op numerieke waarde met isNaN() en daarna pas de berekeningen cq. omzetting naar float te doen.

Today's subliminal thought is:


Verwijderd

Op donderdag 15 november 2001 13:52 schreef Annie het volgende:
Klopt, maar mij ging het even om de cijfercheck.
"1a" wordt door parseFloat() omgezet naar 1 en zal in de isNaN() check dus true geven (als in: het is een numerieke waarde). Terwijl dat eigenlijk niet zo is.

imho zou het logischer zijn om eerst te checken op numerieke waarde met isNaN() en daarna pas de berekeningen cq. omzetting naar float te doen.
Klopt, maar ik ging ervanuit dat de myVar die erin gaat uit een Formulier/textbox komt, iets wat altijd een string zal zijn (bijvoorbeeld "3.1415927"). Voordat ik kan checken of 'ie een getal is, moet ik dus eerst parseFloat of parseInt doen. Dat ie dan "1a" ook accepteerd is inderdaad niet goed. Daar moet dus een aparte check voor komen.

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Op donderdag 15 november 2001 14:24 schreef Blues het volgende:

[..]

Klopt, maar ik ging ervanuit dat de myVar die erin gaat uit een Formulier/textbox komt, iets wat altijd een string zal zijn (bijvoorbeeld "3.1415927"). Voordat ik kan checken of 'ie een getal is, moet ik dus eerst parseFloat of parseInt doen. Dat ie dan "1a" ook accepteerd is inderdaad niet goed. Daar moet dus een aparte check voor komen.
En daar vergis je je dus in ;). Een numerieke waarde in een string zal ook false geven met isNaN.
probeer maar:
code:
1
2
document.write (isNaN(3.1415927));
document.write (isNaN("3.1415927"));

Today's subliminal thought is:


Verwijderd

Op donderdag 15 november 2001 14:53 schreef Annie het volgende:
code:
1
2
document.write (isNaN(3.1415927));
document.write (isNaN("3.1415927"));
Well, f*ck me. |:(

You learn something every day, I guess :o

  • bolleh
  • Registratie: Juli 2001
  • Laatst online: 15:02
* bolleh begrijpt er geen f*ck meer van :?

hoe moet ik het nou in mun code zetten :?

<edit>
ik heb mn code iets aangepast bij de alert aan het eind:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function bereken()
    {
    beginsaldo=parseFloat(document.rekeningen.getal1.value)
    storten=parseFloat(document.rekeningen.getal2.value)
    rentepercentage=parseFloat(document.rekeningen.getal3.value)
    maanden1=parseFloat(document.rekeningen.getal4.value)
    maanden=Math.floor(maanden1)
    saldo1=beginsaldo+(storten*(Math.pow((Math.pow((rentepercentage)/100+1, 1/12)), maanden)))
    saldo=Math.round(saldo1*100)/100
    if (maanden != 1)
        {window.alert("Uw saldo bedraagt f"+ saldo+ " na "+ maanden+ " maanden sparen met f"+ storten+ " per maand en een beginsaldo van f"+ beginsaldo)}
    else
        {window.alert("Uw saldo bedraagt f"+ saldo+ " na "+ maanden+ " maand sparen met f"+ storten+ " per maand en een beginsaldo van f"+ beginsaldo)}
    }
Pagina: 1