Jeg er ved at blive lettere skør over dette problem. Jeg kan ikke få php til at regne et regnestykke ud, hvis nogle af tallene inderholder decimaler og tusinde-seperator. F.eks:
$price1 = "1.499,50"; $price2 = "99,00";
$newprice = $price1-$price2;
echo $newprice
Giver noget i retning af -97.501.... Kan nogen hjælpe :)
Gizmo-gizmo, vil du hjelpe meg lidt til med den bomulds-index'en i Kina? I så fall kan du gjerne ta en tidt om en halv time under Script >PHP og tema "problem med array".
Dalixam, du får -97.501 fordi du udfører regnestykket 1,49950-99 dvs -97,... Følg Gizmo's anbefalinger!
Tak for svaret Gizmo, men når nu tallet ER 1.499,50, hvad gør man så? :) Jeg kan selvfølgelig bruge str_replace og fjerne punktummet og lave komma til punktum, men hvad så bagefter? Hvordan får jeg sæt komma før decimalerne igen på resultatet og punktum som tusinde-seperator? (Hvis tallet er over 999,99)
Det som er problemet er at dine tal er 'strings'. Et alternativ er å slette punktum og so replace komma med punktum - som php benytter som decimaltegn. Og så foreta utrekningene med decimal-tal. Men en snarvei for skandinavisk tall-format og foreta utrekninger med 'strings' direkte er desse funksjonene:
<?php $price1 = "1.499,50"; $price2 = "99,00"; echo gettype($price1)."<br/>"; // her kan du se at det er 'strings' du opererer med function str2no($number){ $number = str_replace(".", "", $number); $number = str_replace(",", ".", $number); return $number; } function no2str($number){ $number = number_format($number,2, ',', '.'); return $number; } echo no2str(str2no($price1)-$price2)."<br/>";
Tusinde tak for hjælpen. Smid et svar så får du point :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.