Hej!
Hur gör jag för att korta av en sträng efter ett kommatecken? Ex:
12.761 ska bli 12.7
4.2344122 ska bli 4.2
Tack :)
7 svar · 382 visningar · startad av streetrobban
Hej!
Hur gör jag för att korta av en sträng efter ett kommatecken? Ex:
12.761 ska bli 12.7
4.2344122 ska bli 4.2
Tack :)
Är det en sträng eller ett tal? För strängar kan du använda t.ex. substr() tillsammans med strpos(). För tal kan du använda round(), floor(), ceil() eller number_format().
(Det borde vara ett tal)
Hmm, det är ett tal i en sträng? $tal = '12.761'. Eller? :) Jag vill inte runda av med round() utan bara klippa bort alla siffror utom den första efter punkten, och de innan punkten.
PHP är ju ett väldigt förlåtande språk, så du kan använda tal-funktionerna ändå. Alltså t.ex. $avrundat = round($tal, 1) för 1 decimal. Men varför ha det som en sträng? Det tvingar ju bara PHP till en onödig typomvandling.
Jag hämtar värdena från ett formulär/databas och det är väl därför. Men om jag använder round($tal, 1) på t.ex. 12.961 så kommer den väl att skriva ut 13.0 och inte 12.9 ?
Det kommer den att göra.
Edit: Men titta på 3 argumentet
http://se2.php.net/round
Edit igen: får inte 3 argumentet att fungera :/
Du kan ju som sagt använda t.ex. substr() i kombination med strpos()
Okej! Så följande kod löste problemet. Tack för hjälpen Metalboy!
<?php
// Hitta var . är
$mystring = '1.9621511';
$findme = '.';
$pos = strpos($mystring, $findme);
// Fråga mig inte varför
$pos = $pos + 2;
// Utan att korta av
echo "$mystring<br><br>";
// Korta av
echo substr($mystring,0,$pos);
?>
Varför inte använda floor() :
$tal="123.456";
$tal2=floor($tal*100)/100;
echo "Tal2=$tal2\n";
Vilket kommer att skriva ut 123.45
Men notera att -123.456 blir -123.46 :)