Jaký je rozdíl mezi 2 a 2,0?


Odpověď 1:

Matematicky neexistuje žádný rozdíl. 2 je členem množiny celých čísel, ale stejně tak je 2,0! Pro matematika je „2.0“ plně přípustné, ale jen více podrobný způsob psaní „2“.

Jak však některé odpovědi naznačily, „2.0“ může znamenat pro inženýra, že měření je přesné s přesností na 1/10, zatímco „2“ může být přesné s přesností na celé číslo.

Nejjasnější rozdíl je zdaleka v programovacích jazycích, jako jsou C a C ++, a také v mnoha dalších jazycích…

  • „2“ je celé číslo a je uloženo jako takové. To, co vidíte, je to, co dostanete - ačkoli dva doplňkový formát lze použít pro záporná čísla. Ale „2“ je uloženo jako 0000 0000 0000 00010 (v případě 16bitových celých čísel). „2.0“ je číslo s pohyblivou řádovou čárkou, které při matematickém vyhodnocení má stejnou hodnotu jako „2“. Ale je uložen tak odlišně, že bitový vzor nevypadá vzdáleně stejně. Proto při míchání celých čísel a pohyblivé řádové čárky musí program vyvolat konverzní rutiny. To je před vámi skryté, ale program to zpomalí.

Nyní se můžete zeptat sami sebe: Jaký je význam pro psaní programů? Nemohu tento problém ignorovat a kompilátor nechává jen pochopit, co chci dělat, například ve výrazu:

N = 1 + 2,0

Některé jazyky, například BASIC, by to mohly povolit, což způsobí, že se v N uloží intemní hodnota 3 a nebude to dělat starosti. Ale C / C ++ jsou mnohem přísnější, pokud jde o typy. V C nebo C ++ je „2.0“ číslo s plovoucí desetinnou čárkou, a proto - i když v tomto případě není žádná zlomková část - bude jazyk přesto varovat před možnou ztrátou dat. Toto varování můžete potlačit následovně:

N = 1 + (int) 2,0;

Ale mnohem jednodušší a efektivnější způsob, jak se vyhnout varovné zprávě, je jednoduše držet se celých čísel při provádění celočíselné matematiky a jakákoli dobrá programovací příručka by to velmi doporučila.

N = 1 + 2;


Odpověď 2:

Rozdíl v textu je „.0“, ale jsou stejné. Avšak v některých počítačových jazycích, kde dochází k implicitní konverzi, bude hodnota 2 převedena na celé číslo a hodnota 2.0 bude převedena na float. Například v T-SQL (SQL Server SQL) tyto dva výběry vrátí různé výsledky.

VÝBĚR 1/2

vrátí 0

VÝBĚR 1 / 2,0

návratnost 0,5


Odpověď 3:

Rozdíl v textu je „.0“, ale jsou stejné. Avšak v některých počítačových jazycích, kde dochází k implicitní konverzi, bude hodnota 2 převedena na celé číslo a hodnota 2.0 bude převedena na float. Například v T-SQL (SQL Server SQL) tyto dva výběry vrátí různé výsledky.

VÝBĚR 1/2

vrátí 0

VÝBĚR 1 / 2,0

návratnost 0,5


Odpověď 4:

Rozdíl v textu je „.0“, ale jsou stejné. Avšak v některých počítačových jazycích, kde dochází k implicitní konverzi, bude hodnota 2 převedena na celé číslo a hodnota 2.0 bude převedena na float. Například v T-SQL (SQL Server SQL) tyto dva výběry vrátí různé výsledky.

VÝBĚR 1/2

vrátí 0

VÝBĚR 1 / 2,0

návratnost 0,5