Decimal – datový typ (Visual Basic)
Obsahuje podepsané 128 hodnoty (16 bajtů) představující 96-bit (12 bajtů) celočíselných čísel, jejichž velikost se škáluje proměnnou výkonem 10. Faktor škálování určuje počet číslic vpravo od desetinné čárky. Rozsah je od 0 do 28. S měřítkem 0 (bez desetinných míst) je největší možná hodnota +/-79,228,162,514,264,337,593,543,950,335 (+/-7.9228162514264337593543950335E + 28). S 28 desetinnými místy je největší hodnota +/-7.9228162514264337593543950335 a nejmenší nenulová hodnota je +/-0,0000000000000000000000000001 (+/-1E-28).
Poznámky
DecimalDatový typ poskytuje největší počet platných číslic pro číslo. Podporuje až 29 platných číslic a může reprezentovat hodnoty převyšující 7,9228 × 10 ^ 28. Je zvláště vhodná pro výpočty, jako je finanční, které vyžadují velký počet číslic, ale nemůžou tolerovat chyby při zaokrouhlování.
Výchozí hodnota Decimal je 0.
Tipy k programování
Číslic.
Decimalnení datový typ s plovoucí desetinnou čárkou.DecimalStruktura obsahuje binární celočíselnou hodnotu společně s bitem znaménka a koeficientem škálování celého čísla, který určuje, jaká část hodnoty je desítkový zlomek. Z tohoto důvoduDecimalčísla mají přesnější reprezentace v paměti než typy s plovoucí desetinnou čárkou (SingleaDouble).Předepsané.
DecimalDatový typ je nejpomalejší ze všech číselných typů. Před výběrem datového typu byste měli zvážit důležitost přesnosti oproti výkonu.Rozšiřující.
DecimalDatový typ se rozšíří naSingleneboDouble. To znamená, že můžete převéstDecimalna některý z těchto typů bez výskytu System.OverflowException chyby.Koncové nuly. Visual Basic neukládá koncové nuly v
Decimalliterálu. NicméněDecimalProměnná zachovává všechny koncové nuly získané výpočty. Toto dokládá následující příklad.Dim d1, d2, d3, d4 As Decimal d1 = 2.375D d2 = 1.625D d3 = d1 + d2 d4 = 4.000D MsgBox("d1 = " & CStr(d1) & ", d2 = " & CStr(d2) & ", d3 = " & CStr(d3) & ", d4 = " & CStr(d4))Výstup
MsgBoxv předchozím příkladu je následující:d1 = 2.375, d2 = 1.625, d3 = 4.000, d4 = 4Znaky typu. Připojení znaku literálového typu
Dk literálu vynutí tentoDecimaldatový typ. Připojení znaku typu identifikátoru@k jakémukoli identifikátoru vynutíDecimal.Typ rozhraní. odpovídající typ v .NET Framework je System.Decimal struktura.
Rozsah
Je možné, že budete muset použít D znak typu pro přiřazení velké hodnoty Decimal proměnné nebo konstantě. Tento požadavek je způsoben tím, že kompilátor interpretuje literál Long , jako by literální znak typu literálu nenásleduje literál, jak ukazuje následující příklad.
Dim bigDec1 As Decimal = 9223372036854775807 ' No overflow.
Dim bigDec2 As Decimal = 9223372036854775808 ' Overflow.
Dim bigDec3 As Decimal = 9223372036854775808D ' No overflow.
Deklarace pro bigDec1 nemá za následek přetečení, protože hodnota, která je přiřazena, spadá do rozsahu pro Long . LongHodnota může být přiřazena Decimal proměnné.
Deklarace pro bigDec2 vygeneruje chybu přetečení, protože hodnota, která je přiřazena, je pro hodnotu příliš velká Long . Vzhledem k tomu, že číselný literál nemůže být nejdříve interpretován jako a Long , nelze jej přiřadit Decimal proměnné.
Pro bigDec3 je znak literálového typu D vyřeší problém tím, že vynutí kompilátor interpretovat literál jako Decimal místo jako Long .