webForumDet fria alternativet

Uträkning med värde från databas (text)

PHP

5 svar · 414 visningar · startad av pawe

Medlem sedan sep. 200811 inlägg
Frågan#1

Tjena,

Finns det någon funktion i PHP för att kunna konvertera om en sträng till numerisk?

I javascript brukar jag köra en parseFloat. I databasen sparar jag ett värde, tex. 0,75 och den måste vara av typen text.

Men sen vill jag kunna använda denna i en uträkning. Men hur tusan? :)

Medlem sedan mars 20007 896 inlägg
#2
$s = "0,75";
if(is_float($s)) {
     $f = floatval($s);
     /* Eller */
     $f = (float) $s;
     ...
Medlem sedan sep. 200811 inlägg
#3

Har testat dom men den skriver bara ut värdet 0.

Tex så här.

echo floatval($row["answer"]);

$row['answer'] innehåller värdet 0,75 i databas fälttypen text.

Medlem sedan sep. 200811 inlägg
#4

Fungerar om jag kör med punkt istället för komma....

Medlem sedan mars 20007 896 inlägg
#5

Titta på diverse lösningar för problemet bland kommentarerna på http://www.php.net/floatval .

Medlem sedan mars 20041 505 inlägg
#6

Type Casting
String conversion to numbers

En smidig lösning är att bara kasta om din string till en float.
Type casting är snällt i PHP eftersom det inte dyker upp exceptions när det går fel.
Om stängen innehåller fuldata så blir värdet helt enkelt 0.
Men som sagt, kommatecken fungerar inte som decimaltecken.
PHP kör ju enligt datorvärldens/amerikansk modell med punkt.

Exempel:

$a = "huxxfluxx";
$b = "13.37";

$x = (float)$a; // Värdet blir float(0)
$y = (float)$b; // Värdet blir float(13.37)
253 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)