Sobes.tech
Middle+

Чӣ гуна метавон аз мушкили нуқтаи парвозӣ бидуни истифодаи NUMERIC дурӣ ҷуст? Чӣ гуна муносибати алтернативӣ бо навъи INT вуҷуд дорад?

sobes.tech AI

Ҷавоб аз AI

Масъалаи бо нуқтаи пардохт дар натиҷаи маҳдудияти дақиқии намоиши рақамҳо бо қисми дробӣ дар намудҳои float ё double ба вуҷуд меояд. Барои пешгирии хатоҳои гирдоштан бе истифодаи намудҳои NUMERIC (ки ҳисоббаробаркунии дақиқи нуқтаи доимиро таъмин мекунад), одатан ба истифодаи намудҳои бутун (INT) муроҷиат мекунанд.

Намудан дар он аст, ки арзишҳоро дар воҳидҳои хурдтарин нигоҳ медоранд, масалан, ба ҷои нигоҳ доштани 12.34, 1234 нигоҳ медоранд (бо дар 100 зум кардан). Ҳамин тариқ, ҳамаи амалиётҳо бо рақамҳои бутун анҷом дода мешаванд, ки хатоҳои гирдоштанро, ки дар float маъмуланд, бартараф мекунад.

Масалан дар Go:

package main
import "fmt"

func main() {
    // Пулро дар сентҳо нигоҳ медорем (рақами бутун)
    var priceCents int = 1234 // 12,34 рубл

    // 0,66 рубл илова мекунем (66 сент)
    priceCents += 66

    fmt.Printf("Нарх: %d.%02d рубл\n", priceCents/100, priceCents%100)
}

Ин усул дар барномаҳои молиявӣ васеъ истифода мешавад, ки дар он дақиқӣ ва набудани хатоҳои гирдоштан муҳим аст.