Kuo skiriasi 2 nuo 2,0?


Atsakymas 1:

Matematiškai jokio skirtumo nėra. 2 yra sveikųjų skaičių rinkinio narys, tačiau taip yra ir 2,0! Matematikui „2.0“ yra visiškai leistinas, tačiau tik žodingesnis „2“ rašymo būdas.

Tačiau, kaip pasiūlė kai kurie atsakymai, „2.0“ inžinieriui gali reikšti, kad matavimas yra tikslus iki artimiausio 1:10, o „2“ gali būti tikslus tik iki artimiausio sveikojo skaičiaus.

Aiškiausias skirtumas, be abejo, yra programavimo kalbose, tokiose kaip C ir C ++, bei daugelyje kitų kalbų.

  • „2“ yra sveikas skaičius ir saugomas kaip toks. Tai, ką matote, gausite, nors neigiamiems skaičiams gali būti naudojamas dviejų komplementų formatas. Bet „2“ saugomas kaip 0000 0000 0000 00010 (16 bitų sveikųjų skaičių atveju). „2.0“ yra slankiojo kablelio skaičius, kuris, matematiškai įvertintas, tiesiog turi tokią pačią reikšmę kaip „2“. Bet jis saugomas taip skirtingai, kad bitų raštas neatrodo tolygus. Taigi, maišant sveikuosius skaičius ir kintamąjį tašką, programa turi kreiptis į konvertavimo tvarką. Tai paslėpta nuo jūsų, tačiau tai daro programą lėtesnę.

Dabar galite paklausti savęs: kokia reikšmė programų rašymui? Negaliu ignoruoti šios problemos, palikdamas kompiliatoriui tiesiog suprasti, ką noriu daryti, pavyzdžiui, sakinyje:

N = 1 + 2,0

Kai kurios kalbos, tokios kaip PAGRINDINĖ, gali leisti tai padaryti, o visa reikšmė 3 turi būti saugoma N ir nesukeliama jokio vargo. Bet C / C ++ tipai yra daug griežtesni. C arba C ++ klasėse „2.0“ yra slankiojo kablelio skaičius, todėl, nors šiuo atveju nėra trupmeninės dalies, kalba vis tiek įspės apie galimą duomenų praradimą. Galite perspėti šį įspėjimą taip:

N = 1 + (int) 2,0;

Bet daug lengvesnis ir efektyvesnis būdas išvengti įspėjamojo pranešimo yra tiesiog laikytis sveikų skaičių darant sveikų skaičių matematiką, ir bet kuris geras programavimo vadovas tai labai rekomenduotų.

N = 1 + 2;


Atsakymas 2:

Skirtumas tekste yra „.0“, tačiau jie yra tas pats skaičius. Tačiau kai kuriomis kompiuterių kalbomis, kuriose vykdomas numanomas konvertavimas, 2 vertė bus paversta sveiku skaičiumi, o vertė 2,0 - konvertuota į kintamąją. Pavyzdžiui, „T-SQL“ („SQL Server SQL“) šie du pasirinkimai duos skirtingus rezultatus.

PASIRINKITE 1/2

grąžina 0

PASIRINKITE 1 / 2.0

grąžina 0,5


Atsakymas 3:

Skirtumas tekste yra „.0“, tačiau jie yra tas pats skaičius. Tačiau kai kuriomis kompiuterių kalbomis, kuriose vykdomas numanomas konvertavimas, 2 vertė bus paversta sveiku skaičiumi, o vertė 2,0 - konvertuota į kintamąją. Pavyzdžiui, „T-SQL“ („SQL Server SQL“) šie du pasirinkimai duos skirtingus rezultatus.

PASIRINKITE 1/2

grąžina 0

PASIRINKITE 1 / 2.0

grąžina 0,5


Atsakymas 4:

Skirtumas tekste yra „.0“, tačiau jie yra tas pats skaičius. Tačiau kai kuriomis kompiuterių kalbomis, kuriose vykdomas numanomas konvertavimas, 2 vertė bus paversta sveiku skaičiumi, o vertė 2,0 - konvertuota į kintamąją. Pavyzdžiui, „T-SQL“ („SQL Server SQL“) šie du pasirinkimai duos skirtingus rezultatus.

PASIRINKITE 1/2

grąžina 0

PASIRINKITE 1 / 2.0

grąžina 0,5