---
title: "Fel med räkning av double datatyper"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/170420-fel-med-räkning-av-double-datatyper"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Nickemannen"
published: "2008-04-02T10:41:05.000Z"
updated: "2008-04-02T15:17:08.000Z"
replies: 4
views: 560
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/dotnet/170420-fel-med-räkning-av-double-datatyper"
---

# Fel med räkning av double datatyper

## #1 — Nickemannen, 2008-04-02T10:41Z

Jag gör i en loop följande

totaltValue += item.Value;

I ett fall när, båda är av typen double
totalValue = -25317.51
och item.Value = -15997.86

så blir resultatet -41315.369999999995 när det borde bli -41315,37
Detta inträffar i vissa andra fall också.

Varför inträffar detta? Kan jag undvika det?

Annars måste jag ju runda av efter varje uträkning och det känns lite tråkigt.

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

## #2 — Nickemannen, 2008-04-02T11:14Z

Antar att det har något med hur det ligger i minnet och hur datorn räknar, detta löste det iallfall.

```
_totalCredit = Math.Round(_totalCredit + item.Sum, 2);
```

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

## #3 — Dino, 2008-04-02T11:27Z

Avrunding kan ge missvisande resultat.

Exempel:
3,333\*199=663,267
3,33\*199=662,67

663,267-662,67=**0,597**

Med stora tal(summor) kan felmarginalen bli väsentlig.

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

## #4 — spango, 2008-04-02T11:28Z

Double och float är inte exakta, decimal är det däremot och är den datatyp man bör använda för valuta.

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

## #5 — Nickemannen, 2008-04-02T15:17Z

Självklart skall man använda decimal som ni säger!!!!

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/170420-fel-med-räkning-av-double-datatyper
