---
title: "1.057 blir till 1.0569999999999999 i VB .Net???"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/116574-1-057-blir-till-1-0569999999999999-i-vb-net/page2"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "lilja"
published: "2004-11-24T07:51:54.000Z"
updated: "2004-11-30T02:48:07.000Z"
replies: 28
views: 1149
page: 2
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/116574-1-057-blir-till-1-0569999999999999-i-vb-net"
---

# 1.057 blir till 1.0569999999999999 i VB .Net???

_Sida 2 av 2._

## #21 — lilja, 2004-11-27T11:28Z

det har inget med variabler att göra!

det är i programkoden det händer!

Om jag vill multiplicera ett tal med ett annat ändrar ibland Visual Studio .Net på min kod!

Om jag skrev in ex. 1.057 så står det 1.056999999999 efter att Visual Studio .Net har validerat koden!

Har inget med variabler eller programkörning att göra! Det är i koden det är problem!

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

## #22 — Nöff, 2004-11-27T14:15Z

Inte vara syra. Gör nu detta pöjk:

double test=double.Parse("17,5")\*double.Parse("1,057");

label2.Text=test.ToString();

 :bire

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

## #23 — PDahlen, 2004-11-27T14:28Z

Eftersom Visual Studio i vissa fall validerar som skit så kanske du skulle stänga av formatteringen.
Felet ligger alltså i inställningarna i Visual Studio i det klassrum där felet är.
Vad de övriga grabbarna här försöker göra är att ge dig en lösning så att det inte spelar någon roll vad VS gör.

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

## #24 — Marcus E, 2004-11-27T14:54Z

Jag har nu testat din kod och du har rätt. VS .NET ändrar de flyttal man skriver in. :l

Jag tycker att ett IDE ska ändra så lite som möjligt i den kod man skriver in och göra ändringar endast vid begäran. Du kan stänga av detta (Options-\>Text Editor-\>Basic-\>VB Specific-\>Pretty listing) men då ändras inte längre if till If. Fast det är nog lika bra.

Att flyttalen bara ändras på vissa datorer beror på att du har olika processorer som inte representerar flyttal på samma sätt.

Exemplet som Nöff gav ska undvikas så mycket som möjligt. Parse ska aldrig användas i onödan eftersom den fungerar olika med olika kulturer.

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

## #25 — lilja, 2004-11-27T15:02Z

ok, tackar som förstod min fråga och som fick mig att förstå... Det var den frågan jag ville ha svar på...

så det beror alltså på processorerna? det var som attan :)

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

## #26 — Nöff, 2004-11-27T15:37Z

> Exemplet som Nöff gav ska undvikas så mycket som möjligt. Parse ska aldrig användas i onödan eftersom den fungerar olika med olika kulturer.

 

Hur menar du då om man får fråga?. Om man tex har ett decimal-tal i en textbox, hur ska man då få den till en double?.

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

## #27 — UlfT, 2004-11-29T09:43Z

> **Nöff skrev:**
>
> > Exemplet som Nöff gav ska undvikas så mycket som möjligt. Parse ska aldrig användas i onödan eftersom den fungerar olika med olika kulturer.
>
>  
> 
> Hur menar du då om man får fråga?. Om man tex har ett decimal-tal i en textbox, hur ska man då få den till en double?.

Han menar nog just ditt specifika exempel, där du ger en sträng direkt i källkoden, som ska parsas. I fallet med textboxar, spelar kulturen ingen roll, eftersom en svensk alltid skriver decimaltalen med decimalkomma, och en amerikan alltid använder decimalpunkt. Men står strängen direkt i källkoden, då är det ett decimalkomma som står där, även om programmet körs i USA. Och då blir strängen misstolkad.

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

## #28 — Nöff, 2004-11-30T01:18Z

Så att ett program som använder "double test=double.Parse("1,009");" och är skrivet i sverige kommer inte att fungera i tex USA?.

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

## #29 — Marcus E, 2004-11-30T02:48Z

Det kommer att fungera på alla datorer som har komma inställt som decimaltecken i de regionala inställningarna (kultur). I många länder används punkt istället. Där fungerar det inte. Format och Parse använder användarens kultur men du kan själv välja den kultur som ska användas genom att skicka med den som ett argument.

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/116574-1-057-blir-till-1-0569999999999999-i-vb-net/page2  
Föregående sida: https://www.webforum.nu/amne/dotnet/116574-1-057-blir-till-1-0569999999999999-i-vb-net.md
