controleren of inhoud een (komma)getal is

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dimi meulman

dimi meulman

26/12/2012 14:17:53
Quote Anchor link
Hey,
Ik vindt het juiste script niet om te kontroleren of een $var een (komma)getal is, kan iemand mij helpen?
 
PHP hulp

PHP hulp

28/03/2024 12:57:20
 
Wouter J

Wouter J

26/12/2012 14:30:25
Quote Anchor link
is_float

Edit:

Waarom deze functie beter is dan gettype, zoals hieronder werd aangeraden:
Quote:
For type checking, use is_* functions.

Gewijzigd op 26/12/2012 14:32:45 door Wouter J
 
Ivo Breeden

Ivo Breeden

26/12/2012 14:31:04
Quote Anchor link
Het type van een variabele kun je bepalen met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php gettype() ?>
.
Bedenk wel dat PHP een decimale punt gebruikt en geen komma.

Toevoeging op 26/12/2012 14:51:17:

Ik sluit me aan bij het advies van Wouter om is_float() te gebruiken. Maar kijk dan ook naar is_int() en is_numeric() omdat je vraagt om een test naar een (komma) getal. Daaruit begrijp ik dat het ook een integer zou kunnen zijn.
 
Dimi meulman

dimi meulman

26/12/2012 14:56:43
Quote Anchor link
Dit werkt niet maar heb nog wat verder gezocht en merk omdat dit een $var is die verstuurt is met een form, je niet is_float maar is_numirec moet gebruiken maar dan aanvaart hij geen kommagetallen.
Kan dit kloppen en hoe moet ik dit oplossen?
 
Wouter J

Wouter J

26/12/2012 15:00:05
Quote Anchor link
Oh, je wilt weten of iets een getal is, het maakt niet uit wat? Dan kun je is_numeric gebruiken (zoals Ivo al aangaf). En mocht je een getal als 3.4E3 (wat 3400 betekend) niet willen toestaan kun je eens naar ctype_digit kijken.
 
Dimi meulman

dimi meulman

26/12/2012 15:11:21
Quote Anchor link
ja, maar bij numeric aanvaart hij geen komma getallen
 
Wouter J

Wouter J

26/12/2012 15:13:33
Quote Anchor link
Oh? Waar staat dat?

Quote:
Finds whether the given variable is numeric. Numeric strings consist of optional sign, any number of digits, optional decimal part and optional exponential part.
Gewijzigd op 26/12/2012 15:15:31 door Wouter J
 
Erwin H

Erwin H

26/12/2012 15:22:57
Quote Anchor link
Een 'komma' getal gaat waarschijnlijk inderdaad niet werken, omdat standaard php de Amerikaanse wijze aanhoudt. Het decimale scheidingsteken is standaard dus de punt en niet de komma in een float.
 
Ivo Breeden

Ivo Breeden

26/12/2012 17:42:24
Quote Anchor link
Dimi, als het getal in Nederlands formaat is (met komma i.p.v. punt) dan moet je dat eerst omzetten. Het mooist gaat dat met een NumberFormatter, maar die is niet altijd geinstalleerd.
Een eenvoudiger methode is om de komma te vervangen door een punt. Maar dan ga ik ervan uit dat er geen punt wordt gebruikt als scheidingsteken voor de duizendtallen. Een voorbeeld met beperkte mogelijkheden is dus het volgende.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$invoer
= '1234,56';
$uitvoer = str_replace(',', '.', $invoer); //vervang komma door punt
if (is_numeric($uitvoer)) {
    echo $uitvoer;
}
else {
    echo "$invoer is geen getal\n";
}

?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.