У чым розніца паміж 2 і 2.0?


адказ 1:

Матэматычна няма розніцы наогул. 2 з'яўляецца членам мноства цэлых лікаў, але таксама 2.0! Для матэматыка "2.0" цалкам дапушчальны, але толькі больш шырокі спосаб напісання "2".

Як паказваюць некаторыя адказы тут, "2.0" для інжынера можа азначаць, што вымярэнне дакладна да дзесятай, у той час як "2" можа быць дакладным толькі да наступнага цэлага ліку.

Яснае адрозненне на сённяшні дзень у мовах праграмавання, такіх як C і C ++, а таксама ў шэрагу іншых моў ...

  • "2" - цэлае лік і захоўваецца як такое. Тое, што вы бачыце, - тое, што вы атрымліваеце, - хоць фармат дапаўнення абодвух можна выкарыстоўваць для адмоўных лікаў. Аднак "2" захоўваецца як 0000 0000 0000 00010 (у выпадку 16-бітных цэлых лікаў). "2,0" - гэта лічба з плаваючай кропкай, якая мае тое ж значэнне, што і "2" пры матэматычнай ацэнцы. Аднак ён захоўваецца настолькі па-рознаму, што і самы аддалены разрадны малюнак выглядае не тое ж самае. У выніку праграма павінна выклікаць працэдуры пераўтварэння пры змешванні цэлых лікаў і плаваючай кропкі. Гэта ад вас схавана, але праграма запавольвае працу.

Цяпер вы можаце спытаць сябе: у чым важнасць напісання праграм? Немагчыма ігнараваць гэтую праблему і проста дайце кампілятару зразумець, што я хачу зрабіць, напрыклад у выразе:

N = 1 + 2,0

Некаторыя мовы, такія як Б. BASIC, можа дазволіць гэта, у якім захоўваецца цэлае значэнне 3 у N, і не з'яўляецца клопатамі. Але C / C ++ значна больш строгія ў плане тыпаў. У C ці C ++ "2.0" - гэта лічба з плаваючай кропкай, і таму мова - хоць у гэтым выпадку не бывае дробу - усё яшчэ выдае папярэджанне аб магчымых стратах дадзеных. Вы можаце здушыць гэтае папярэджанне наступным чынам:

N = 1 + (інт) 2,0;

Значна больш простым і эфектыўным спосабам пазбегнуць папярэджання з'яўляецца проста прытрымлівацца цэлых лікаў пры вылічэнні цэлых лікаў, і любое добрае кіраўніцтва па праграмаванні настойліва рэкамендуе гэта.

N = 1 + 2;


адказ 2:

Розніца ў тэксце складае ".0", але іх колькасць аднолькавая. Аднак у некаторых кампутарных мовах, дзе адбываецца няяўнае пераўтварэнне, значэнне 2 пераўтвараецца ў цэлае лік, а значэнне 2,0 - у значэнне з плаваючай кропкай. Напрыклад, у T-SQL (SQL Server SQL) гэтыя два выбары вяртаюць розныя вынікі.

ВЫБАРЫ 1/2

вяртае 0

ВЫБАР 1 / 2,0

вяртае 0,5


адказ 3:

Розніца ў тэксце складае ".0", але іх колькасць аднолькавая. Аднак у некаторых кампутарных мовах, дзе адбываецца няяўнае пераўтварэнне, значэнне 2 пераўтвараецца ў цэлае лік, а значэнне 2,0 - у значэнне з плаваючай кропкай. Напрыклад, у T-SQL (SQL Server SQL) гэтыя два выбары вяртаюць розныя вынікі.

ВЫБАРЫ 1/2

вяртае 0

ВЫБАР 1 / 2,0

вяртае 0,5


адказ 4:

Розніца ў тэксце складае ".0", але іх колькасць аднолькавая. Аднак у некаторых кампутарных мовах, дзе адбываецца няяўнае пераўтварэнне, значэнне 2 пераўтвараецца ў цэлае лік, а значэнне 2,0 - у значэнне з плаваючай кропкай. Напрыклад, у T-SQL (SQL Server SQL) гэтыя два выбары вяртаюць розныя вынікі.

ВЫБАРЫ 1/2

вяртае 0

ВЫБАР 1 / 2,0

вяртае 0,5