Sobes.tech
Junior — Middle

Milyen különbségek vannak a Double és Decimal számformátumok tárolási módjai között pontosság és használat szempontjából?

sobes.tech MI

Válasz az MI-től

A Double és Decimal két különböző formátum a lebegőpontos számok tárolására, amelyek pontosságban és alkalmazási területen különböznek.

  • Double egy dupla pontosságú lebegőpontos típus (64-bites), az IEEE 754 szabványon alapul. Bináris formátumban tárolja a számokat, ami kerekítési hibákhoz vezethet tizedes törtekkel való munkavégzés során. A Double alkalmas tudományos számításokra, grafikára, ahol a sebesség és a széles tartomány fontos, de nem az abszolút pontosság.

  • Decimal egy fix pontosságú tizedes típus, amely tizedes formátumban tárolja a számokat. Magas pontosságot és pontos tizedes törtek ábrázolását biztosítja, ami fontos pénzügyi és könyvelési alkalmazásokban, ahol a kerekítési hibák elfogadhatatlanok.

Példa:

let doubleValue: Double = 0.1 + 0.2
print(doubleValue) // Lehet, hogy 0.30000000000000004-et ír ki

import Foundation
let decimalValue1 = Decimal(string: "0.1")!
let decimalValue2 = Decimal(string: "0.2")!
let decimalSum = decimalValue1 + decimalValue2
print(decimalSum) // Pontosan 0.3-at fog kiírni

Összefoglalva, a Double-t válassza a teljesítmény és a széles tartomány érdekében, a Decimal-t pedig a pontos pénzügyi számításokhoz.