---
title: "Korta av sträng?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/180082-korta-av-sträng"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "streetrobban"
published: "2009-09-03T11:42:55.000Z"
updated: "2009-09-03T14:43:58.000Z"
replies: 7
views: 387
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/180082-korta-av-sträng"
---

# Korta av sträng?

## #1 — streetrobban, 2009-09-03T11:42Z

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 :)

Permalänk: https://www.webforum.nu/p/180082

## #2 — metalboy, 2009-09-03T11:46Z

Ä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)

Permalänk: https://www.webforum.nu/p/2200746

## #3 — streetrobban, 2009-09-03T11:52Z

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.

Permalänk: https://www.webforum.nu/p/2200748

## #4 — metalboy, 2009-09-03T11:55Z

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.

Permalänk: https://www.webforum.nu/p/2200749

## #5 — streetrobban, 2009-09-03T12:01Z

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 ?

Permalänk: https://www.webforum.nu/p/2200750

## #6 — metalboy, 2009-09-03T12:22Z

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()

Permalänk: https://www.webforum.nu/p/2200752

## #7 — streetrobban, 2009-09-03T14:36Z

Okej! Så följande kod löste problemet. Tack för hjälpen Metalboy!

```php
<?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);
?>
```

Permalänk: https://www.webforum.nu/p/2200764

## #8 — GunnarD, 2009-09-03T14:43Z

Varför inte använda floor() :

```php
$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 :)

Permalänk: https://www.webforum.nu/p/2200767

---

Tråden på webben: https://www.webforum.nu/amne/php/180082-korta-av-sträng
