[Fikir] Native Decimal Tipi (Ondalıklı Sayılarda Hassasiyet) #84
Labels
No Label
cli-ux
faz-plani
felsefe-gozden-gecir
ffi-builtin
fikir
gelecek-vizyon
ir-vm
kalite-mimari
moduller-import
test-senaryosu
tip-sistemi
tooling-lsp
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: saqut/saqut-compiler#84
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Giriş (Nedir, Neden Önemli?)
float/doubleikili (binary) kayan-nokta sayılardır ve ondalık kesirleri (örn.0.1) tam temsil edemez — bu, para/finans hesaplamalarında hatalara yol açar. Birçok modern dil (C#, PythonDecimal) bunun için ayrı bir decimal (ondalık) tip sunar.Gelişme (Olası Yaklaşımlar)
decimalyeni bir primitifTypeKindolaraksrc/core/type.hpp'ye eklenebilir (Faz 0'ınTypesınıfı genişletilebilir tasarlanmalı — bu issue o genişletilebilirliği şimdiden akılda tutmak için var).12345ve ölçek2→123.45). Host heap'te basit bir struct olarak tutulabilir, özel kütüphane gerekmez (v0).decimal x = 1;geçerli olmalı (tamsayı → decimal kayıpsız);decimal x = 1.5;(float literal → decimal) hassasiyet tartışması gerektirir.Açık Sorular
decimalaritmetiği (+,*) için taşma (overflow) kuralları ne olacak — hata mı, yoksa otomatik büyüme mi (bu, "host heap, özel allocator yok" ADR-015 ilkesiyle gerilim yaratabilir)?İmza/Yorum: "Modern dillerin standart hale getirdiği ama derleyici çekirdeğine gömülmesi gereken" tiplerin ilk örneği — kullanıcı isteğiyle doğrudan örtüşüyor.