TGTGInsighttelegram-intelligenzLIVE / telegram public index
Beitragsinhalt
Inhalt
Bugungi masalani ishlashda memga aylangan muammoga duch keldim va sababini o'rganib chiqdim. Bu 0.1 + 0.2 == 0.3 => false muammosi. Ya'ni java va boshqa ko'plab dasturlash tillarida 0.1 + 0.2 = 0.30000000000000004 Xo'sh, nima uchun? Demak, xotirada sonlar ikkilik sanoq tizimida, binar holda saqlanadi. O'nli kasrlarni ikkilik sanoq tizimiga o'tkazishda cheksiz davriylik muammosi yuzaga keladi, misol uchun, 0.1 ikkilik sanoq tizimida cheksiz davriy kasr hisoblanadi: 0.000110011001100110011001100110... Double esa 64 bitni o'zida jamlay oladi xolos. Qolgan qismini yaxlitlab yuboradi. Shunday qilib, yaxlitlangan 0.1 va 0.2 ning oxirgi kasr qismlari birlashib, 0.3 ga yana bir kichik qiymat qo'shib qo'yadi. @it_suhbat