---
title: "ToString"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/92055-tostring"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "celia"
published: "2003-12-07T14:11:05.000Z"
updated: "2003-12-11T12:27:40.000Z"
replies: 24
views: 703
page: 1
pages: 2
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/dotnet/92055-tostring"
---

# ToString

_Sida 1 av 2._

## #1 — celia, 2003-12-07T14:11Z

Vad betyder N och D?

ToString("D2")
ToString("N2")

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

## #2 — m_soderlund, 2003-12-07T14:18Z

"D2" och "N2" är såvitt jag kan se värden som redan är strängar, och i så fall skulle ToString("x2") inte behövas. ToString() använder man när man vill konvertera en datatyp (exempelvis tal) till en sträng.

```
Dim x As integer
x = 100000
lbl1.Text = x 'fungerar ej
lbl1.Text = x.ToString() 'fungerar
```

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

## #3 — celia, 2003-12-07T14:29Z

Nä, det har väl med avrundning att göra? Om man konverterar ett flyttal tex:

flyttalet.ToString("D2")

så blir det två decimaler??

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

## #4 — m_soderlund, 2003-12-07T14:43Z

ToString-metoden använder man huvudsakligen för att konvertera en datatyp (t. ex. ett tal, ett objekt) till en sträng, för att exempelvis kunna skriva ut det i webbläsaren.

Man kan dock använda ToString för att avrunda ett tal till två decimaler, precis som du skriver. Jag som fattade lite trögt i början. ;)

Du kan titta lite mer [här](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemenumclasstostringtopic.asp) och  [här](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemConvertClassToStringTopic.asp). :D

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

## #5 — celia, 2003-12-07T15:01Z

Tack för det :) MSDN är jag inte vän med, tycker det är krångligt att hitta saker där... Iaf så hittade jag [detta](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconstandardnumericformatstrings.asp)

D= Decimal
N=Number

r/ hur gör man om man inte vill ha några decimaler alls, med korrekt avrunding? Tex talet 1.567 ska bli strängen "2"

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

## #6 — Vimp, 2003-12-07T15:29Z

Round(integer,0)

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

## #7 — m_soderlund, 2003-12-07T19:26Z

Jo - du kan göra så som Vimp skriver också. :)
MSDN är bra, men jag gillar .NET framework SDK bra mycket bättre. :)

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

## #8 — m_soderlund, 2003-12-07T19:32Z

..och här är länken: <http://msdn.microsoft.com/netframework/technologyinfo/howtoget/>

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

## #9 — Gladh, 2003-12-08T07:12Z

> Man kan dock använda ToString för att avrunda ett tal till två decimaler, precis som du skriver

Tja!! Man använder det ju inte till att avrunda talet, utan man avrundar det värde som skrivs till strängen.

Om man efter ToString("D2") tittar på sitt tal igen, så har det inte avrundats till 2 decimaler. 

Det är lite skillnad.

\- M

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

## #10 — trexter, 2003-12-08T07:29Z

Kan man inte anvrunda det "by reference" då?

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

## #11 — celia, 2003-12-08T07:44Z

> **Gladh skrev:**
>
> Om man efter ToString("D2") tittar på sitt tal igen, så har det inte avrundats till 2 decimaler.

Jo det är jag medveten om. Meningen var inte att ändra själva talet, utan att skapa en sträng med ett avrundat värde :)

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

## #12 — m_soderlund, 2003-12-10T08:27Z

\>\> Celia: du ändrar ju talet när du skapar en sträng med ett avrundat värde, såvida inte talet har exakt samma antal decimaler innan som efter avrundningen - vilket det ju inte har.

Vad vill du göra?

Avrunda talet och göra det till en sträng?
Inte avrunda talet (inte ändra talet) men göra det till en sträng?

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

## #13 — celia, 2003-12-10T12:10Z

> **m_soderlund skrev:**
>
> Inte avrunda talet (inte ändra talet) men göra det till en sträng?

Japp.

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

## #14 — m_soderlund, 2003-12-10T13:37Z

Oki. Då använder du enbart denna koden:

```
Dim x As integer
x = 10
lbl1.Text = x.ToString()
```

Förutsätter att du har en label på sidan som heter lbl1. :)

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

## #15 — celia, 2003-12-10T14:00Z

Äsch jag missförstod dig m_söderlund  :r  Såhär menar jag:

dim f as float    'heter det float i VB? Iaf, ni fattar nog vad jag menar
dim s as string
f = 12345.6789

sedan

s = f.ToString("D2")      's = 12345.68, f = 123435.6789

då har ju inte f ändrats. Men om man gör 

f = round(f,0) ' skriver man så?
s = f.ToString()

då ändras f innan man konverterar det till en sträng. Jag ville göra enligt första alternativet :)

\----------

Tillbaka till ursprungsfrågan, om man gör såhär, vad blir s då?

dim f as float
dim s as string
f = 12345.6789
s = f.ToString("N2");  ' s = ??, f = 12345.6789

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

## #16 — m_soderlund, 2003-12-10T14:07Z

Aha!

Jag tror att *s* i sista koden där blir 12345,68 - men jag är långt ifrån säker. ;)

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

## #17 — Gladh, 2003-12-10T14:43Z

> Tillbaka till ursprungsfrågan, om man gör såhär, vad blir s då?

Varför inte prova och se :)

\- M

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

## #18 — celia, 2003-12-10T15:55Z

Jag hade inte tillgång till Visual Studio när inläggen i den här tråden postades men nu när jag testat lite så fick jag följande resultat:

f.ToString("N2")   '12345.68
f.ToString("D2")   'error: Format specifier was invalid.
med Round          '12345.68

Vad har man D2 till?

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

## #19 — icaaq, 2003-12-10T16:14Z

Tostring(Nx) = numberformat
ToString(Dx) = decimalformat

Kolla mer i Doc:n för mer information

Mv icaaq

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

## #20 — m_soderlund, 2003-12-10T16:17Z

D kanske står för *Date* oc N kanske för *Number*? I så fall är det nog förklarligt att D2 genererar ett felmeddelande. :)

**/r** icaaq var före.

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/92055-tostring  
Nästa sida: https://www.webforum.nu/amne/dotnet/92055-tostring/page2.md
