ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double

Pro Java

Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Ρ‹

17 Π°ΠΏΡ€. 2015 Π³.

Π’ΠΈΠΏΠ‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ΠŸΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽΠ Π°Π·ΠΌΠ΅Ρ€Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠžΠ±Π΅Ρ€Ρ‚ΠΊΠΈ
floatвСщСствСнноС Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅0.032 bitsΠΎΡ‚ 1.4Eβˆ’45 Π΄ΠΎ 3.4028235E+38Float
doubleвСщСствСнноС Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅0.064 bitsΠΎΡ‚ 4.9Eβˆ’324 Π΄ΠΎ 1.7976931348623157E+308Double

ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double

ВСщСствСнныС числа Π² Java прСдставлСны Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… float ΠΈ double. Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… Π²Ρ‹ΡˆΠ΅, float являСтся 32 Π±ΠΈΡ‚Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, с ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ, Π° double прСдставляСт 64 Π±ΠΈΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, с Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π±ΠΈΡ‚ ΠΎΡ‚Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄ прСдставлСниС этих чисСл смотритС Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π²Ρ‹ΡˆΠ΅. Оба Ρ‚ΠΈΠΏΠ° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ стандарту IEEE 754-1985, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ чисСл ΠΈ арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹Π΅ ΠΊ этим числам. Но Π΅ΡΡ‚ΡŒ ΠΈ нСбольшиС отличия ΠΎΡ‚ этого стандарта. К ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ вСщСствСнным числам Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π΅Ρ‰Π΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ значСния:

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с бСсконСчностями Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ матСматичСским ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ. Π’ΠΎ всСм ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ вСщСствСнныС Ρ‚ΠΈΠΏΡ‹ β€” это ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ вСщСствСнныС значСния, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ всС арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сравнСния.

ВСщСствСнныС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹

ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double

ЗначСния с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ нСпосрСдствСнно Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² Java ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π’ Ρ‚Π°ΠΊΠΎΠΉ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π΅ Π·Π° Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ†ΠΈΡ„Ρ€ слСдуСт дСсятичная Ρ‚ΠΎΡ‡ΠΊΠ° ΠΈ другая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ†ΠΈΡ„Ρ€. НиТС прСдставлСны нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²:

Π’Π°ΠΊ ΠΆΠ΅ с Java 6, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅:

0xFp2 // 15×2 2 =60

double d = 6.02E23;
float f = 6.02e23f;

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ вСщСствСнных чисСл, ΠΏΠΎ самой ΠΈΡ… ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅, нСльзя Ρ‚ΠΎΡ‡Π½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ количСством Π±ΠΈΡ‚ΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ значСния float ΠΈ double ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ значСниями прСдставляСмых ΠΈΠΌΠΈ чисСл. float – это 32 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 6 Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Ρ… дСсятичных разрядов, Π° double – это 64 Π±ΠΈΡ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ прСдставляСт ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ 15 Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Ρ… дСсятичных разрядов. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ эти числа подходят для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° вычислСний с вСщСствСнными числами.

АрифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊ вСщСствСнным Ρ‚ΠΈΠΏΠ°ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ всС арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ сравнСния, Ρ†Π΅Π»Ρ‹Π΅ ΠΈ вСщСствСнныС значСния ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ Π² опСрациях. ΠŸΡ€ΠΈ этом ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ привСдСния Ρ‚ΠΈΠΏΠΎΠ² дополняСтся Ρ‚Π°ΠΊΠΈΠΌΠΈ условиями:

Ссли Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ double, Ρ‚ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ приводится ΠΊ Ρ‚ΠΈΠΏΡƒ double;

ΠΈΠ½Π°Ρ‡Π΅, Ссли ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ float, Ρ‚ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ приводится ΠΊ Ρ‚ΠΈΠΏΡƒ float;

Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС дСйствуСт ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ привСдСния Ρ†Π΅Π»Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ (ΠΈΠ»ΠΈ остаток) опрСдСляСтся Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ для цСлочислСнных Ρ‚ΠΈΠΏΠΎΠ²:
a % b = a β€” (a / b) * b

Π’Π°ΠΊ ΠΆΠ΅ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ дСлСния ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ справСдливо ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:

a = ((long)(a/b))*b+(a%b)

ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double

ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double

ВычислСния чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅, Π° Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… процСссорах ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π°Π²Π°Ρ‚ΡŒ нСсколько Ρ€Π°Π·Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина java выполняСт эти ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° сопроцСссорС (FPU), Ссли ΠΎΠ½ присутствуСт Π½Π° устройствС. А Π² сопроцСссорС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ рСгистры для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ 80 Π±ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΡˆΠΈΡ€Π΅ Π΄Π°ΠΆΠ΅ Ρ‡Π΅ΠΌ double. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π² эти рСгистры ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ числа double, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΠΏΡΡ‚ΡŒ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΈΡ… Π² double, Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ для ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… чисСл, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ java эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π½Π΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅Ρ‚ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ, Ρ‡Ρ‚ΠΎ написанный ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ с цСлочислСнными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… процСссорах. Π­Ρ‚ΠΎ сдСлано ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сопроцСссор для скорости вычислСний. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² этом случаС ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π±Ρ‹Π»ΠΈ Π½Π° всСх процСссорах ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅, Ρ‚ΠΎ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово strictfp Π² Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

public static strictfp void main(String[] args)

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС всС Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ main, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π±Π΅Π· участия сопроцСссора, Π±ΡƒΠ΄Π΅Ρ‚ строго ΠΎΠΊΡ€ΡƒΠ³Π»ΡΡ‚ΡŒΡΡ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… 64 Π±ΠΈΡ‚ ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… процСссорах.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

H ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π² Java Π² Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈΠΊΠ°Ρ… Tutorial

ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹

ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΡƒΡŽ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ языка Java, Ρ‚Π°ΠΊ Ρ‚Π°ΠΊ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Π΅ (простыС) значСния. Π­Ρ‚Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ простой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ new нСдостаточно эффСктивно, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ new ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² ΠΊΡƒΡ‡Ρƒ. ВмСсто этого создаСтся «автоматичСская» пСрСмСнная, которая Π½Π΅ являСтся ссылкой Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Ρ…Ρ€Π°Π½ΠΈΡ‚ СдинствСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ располагаСтся Π² стСкС. Π‘Ρ‚Π΅ΠΊ β€” это ΠΎΠ±Π»Π°ΡΡ‚ΡŒ хранСния Π΄Π°Π½Π½Ρ‹Ρ…, располоТСна Π² RAM. ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ ΠΈΠΌΠ΅Π΅Ρ‚ прямой доступ Π΄ΠΎ этой области Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° стСк, поэтому стСк β€” ΠΎΡ‡Π΅Π½ΡŒ быстрый ΠΈ эффСктивный способ хранСния Π΄Π°Π½Π½Ρ‹Ρ…. По скорости стСк уступаСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ рСгистрам (Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ рСгистры располоТСны Π²Π½ΡƒΡ‚Ρ€ΠΈ процСссора).
ВсС Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² строго фиксированы ΠΈ Π½Π΅ зависят ΠΎΡ‚ машинной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° с ΠΏΡ€ΠΈΡ‡ΠΈΠ½ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΉ пСрСносимости Java-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.
Π’ Java ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ восСмь ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹:

Π¦Π΅Π»Ρ‹Π΅ числаЧисла с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ точкойБимволыЛогичСскиС значСния
byte, short, int, longfloat, doublecharboolean

Π¦Π΅Π»Ρ‹Π΅ числа

Числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ

Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹

Π’ спСцификации ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ char ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΊ цСлочислСнным Ρ‚ΠΈΠΏΠ°ΠΌ (ΠΈΠ»ΠΈ integral types), Π½ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΠΈΠ³Ρ€Π°Π΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ для Π½Π΅Π³ΠΎ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ. Π•Π³ΠΎ Ρ€ΠΎΠ»ΡŒ β€” ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ символы Unicode. Для хранСния символов трСбуСтся 16 Π±ΠΈΡ‚. Π‘Ρ‚Ρ€Π°Π½Π½ΠΎ, вСдь для прСдставлСния символов основных языков (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, английского, французского, испанского) достаточно 8 Π±ΠΈΡ‚. Но такая Ρ†Π΅Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Unicode ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹Ρ… символов Π½Π° всСх извСстных языках ΠΌΠΈΡ€Π°.

Π’ΠΈΠΏΠ”Π»ΠΈΠ½Π° Π² Π±Π°ΠΉΡ‚Π°Ρ…Π”Π»ΠΈΠ½Π° Π² Π±ΠΈΡ‚Π°Ρ…Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½
char216[‘\u0000’, ‘\uffff’] ΠΈΠ»ΠΈ [0, 65535]

ЛогичСскиС азначСния

ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ boolean ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для хранСния логичСских Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π”Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π΄Π²ΡƒΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: true (истина) ΠΈΠ»ΠΈ false (лоТь). ЗначСния boolean Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ со всСх логичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сравнСния). ЯвляСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈ построСнии Ρ†ΠΈΠΊΠ»ΠΎΠ², ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, for, if).

Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹

ЗначСния ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ². Рассмотрим ΠΈΡ….

ЦСлочислСнныС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹

НаиболСС часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹. Π›ΡŽΠ±ΠΎΠ΅ цСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ являСтся числовым Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, -10, 10 β€” дСсятичныС значСния). МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅, ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹:

ВсС цСлочислСнныС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ значСния int. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° Π»Π΅ΠΆΠΈΡ‚ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ byte, short ΠΈΠ»ΠΈ char, Ρ‚ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ этого Ρ‚ΠΈΠΏΠ° Π±Π΅Π· привСдСния Ρ‚ΠΈΠΏΠΎΠ². Для создания Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° Ρ‚ΠΈΠΏΠ° long, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ компилятору, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΠ² Π»ΠΈΡ‚Π΅Ρ€Π°Π» Π±ΡƒΠΊΠ²ΠΎΠΉ ‘l‘ ΠΈΠ»ΠΈ ‘L‘:

Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ

БущСствуСт Π΄Π²Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ записи Π»ΠΈΡ‚Π΅Ρ€ΠΎΠ² с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ: стандартная ΠΈ ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ:

ВсСх Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°ΠΌ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ присваиваСтся Ρ‚ΠΈΠΏ double. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π»ΠΈΡ‚Π΅Ρ€Π°Π» Ρ‚ΠΈΠΏΠ° float, Π½ΡƒΠΆΠ½ΠΎ послС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π±ΡƒΠΊΠ²Ρƒ ‘f‘ ΠΈΠ»ΠΈ ‘F‘. К Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π±ΡƒΠΊΠ²Ρƒ ‘d‘ ΠΈΠ»ΠΈ ‘D‘, сообщая, Ρ‡Ρ‚ΠΎ это Π»ΠΈΡ‚Π΅Ρ€Π°Π» Ρ‚ΠΈΠΏΠ° double, Π½ΠΎ Π·Π°Ρ‡Π΅ΠΌ?

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Для удобности чтСния Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² Π² 7 вСрсии языка Π±Ρ‹Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символ ‘_’ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°:

Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹

Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. ВсС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ символы ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ способом. Если символ нСльзя ввСсти нСпосрСдствСнно, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с символа ‘\‘. Π₯отя всС эти ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Unicode ΠΊΠΎΠ΄ΠΎΠΌ. Π’Π°ΠΊΠΆΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π» ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΡƒΡŽ (‘\xxx’) ΠΈ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ (‘\uxxxx’).

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ строковыС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΡƒΡ‚.

ЛогичСскиС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹

Π‘ логичСскими ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ всС просто. БущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° логичСских Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°:

ЛогичСскиС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠ° boolean. Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ false Π½Π΅ Ρ€Π°Π²Π΅Π½ 0, Π° true Π½Π΅ Ρ€Π°Π²Π΅Π½ 1. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° boolean Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π½Π΅ Π²Ρ‹ΠΉΠ΄Π΅Ρ‚.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

Над цСлочислСнными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ

Над Floating-Point Ρ‚ΠΈΠΏΠ°ΠΌΠΈ

Над числами с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ всС Ρ‚Π΅ ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ с Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² сдвига.

Над логичСским Ρ‚ΠΈΠΏΠΎΠΌ

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅

БущСствуСт Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ:

Π Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅

Если ΠΎΠ±Π° Ρ‚ΠΈΠΏΠ° совмСстимы ΠΈ Π΄Π»ΠΈΠ½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° большС Π΄Π»ΠΈΠ½Ρ‹ исходного Ρ‚ΠΈΠΏΠ° выполняСтся Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ byte прСобразуСтся Π² int). Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° дСмонстрируСт всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰Π΅Π΅ прСобразования. ΠšΡƒΡ€ΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ Ρ‚ΠΈΠΏΡ‹, прСобразования Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΈΠ²Π΅Π΄ΡƒΡ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

byteshort, int, long, float, double
shortint, long, float, double
charint, long, float, double
intlong, float, double
longfloat, double
floatdouble (Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ strictfp ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚)

Π‘ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅

ΠŸΡ€ΠΈ ΡΡƒΠΆΠΈΠ²Π°ΡŽΡ‰Π΅ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° потСря ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΠ±Ρ‰Π΅ΠΉ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π΅ числового значСния, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½. ВсС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΡΡƒΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ прСобразования ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅:

shortbyte, char
charbyte, short
intbyte, short, char
longint, byte, short, char
floatlong, int, byte, short, char
doublefloat, long, int, byte, short, char

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… нСсовмСстимых Ρ‚ΠΈΠΏΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ (casting). Если значСния исходного цСлочислСнного Ρ‚ΠΈΠΏΠ° большС допустимого Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Ρ‚ΠΎ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ свСдСно ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ дСлСния ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Если ΠΆΠ΅ значСния Ρ‚ΠΈΠΏΠ° с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ приводится ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ цСлочислСнного Ρ‚ΠΈΠΏΠ°, Ρ‚ΠΎ происходит усСчСниС (отбрасываСтся дробная Ρ‡Π°ΡΡ‚ΡŒ).

ΠŸΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅

Когда трСбуСмая Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ значСния Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ допустимого Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ любого с ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ автоматичСскоС ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ².

ΠŸΡ€Π°Π²ΠΈΠ»Π° продвиТСния Ρ…ΠΎΡ€ΠΎΡˆΠΎ дСмонстрируСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°:

ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double

ΠšΠ»Π°ΡΡΡ‹-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ

Для прСдставлСния ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π±Ρ‹Π»ΠΎ сдСланы классы-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ (wrapper classes). КакиС прСимущСства Π΄Π°ΡŽΡ‚ Π½Π°ΠΌ классы-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ?

ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double

Автоупаковка ΠΈ распаковка

Π’ вСрсии JDK 5 Π±Ρ‹Π»ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ‹ Π΄Π²Π° Π²Π°ΠΆΠ½Ρ‹Ρ… срСдства:

НСкоторыС ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Бпасибо Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. ВсС дополнСния, уточнСния ΠΈ ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠ° ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ΡΡ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Java β€” ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹ ΠΈ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹

Java являСтся строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ языком. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΠΏΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Java Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ‚ΠΈΠΏ, имя ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Если объявлСна пСрСмСнная Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ значСния, Ρ‚ΠΎ ΠΎΠ½Π° содСрТит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Для ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½ΠΎ это всСгда null для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Java

Π―Π·Ρ‹ΠΊ программирования Java содСрТит восСмь ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Π§Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… для цСлочислСнных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ β€” byte, short, int ΠΈ long. Π”Π²Π° ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ β€” float ΠΈ double. Один ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ β€” char, ΠΎΠ΄ΠΈΠ½ для условия β€” boolean.

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ всС эти ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΈΡ….

Π’ΠΈΠΏΠ Π°Π·ΠΌΠ΅Ρ€Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽΠŸΡ€ΠΈΠΌΠ΅Ρ€
boolean1 bitNAfalseboolean bool = true;
char16 bitsΠ‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ Unicodeβ€˜\u0000β€² ΠΈΠ»ΠΈ 0char c = β€˜A’;
char c = β€˜\u0041β€²;
char c = 65;
char c = β€˜\t’;
byte8 bits[-128,127] ΠΈΠ»ΠΈ
[-2^7 to 2^7-1]
0byte b = 10;
byte b = 0b010;
short16 bits[-32768,32767]0short s = 32;
short s = β€˜A’;
int32 bits[-2147483648,2147483647]0int i = 10;
int i = β€˜A’;
long64 bits[-2^63,2^63-1]0long l = 3200L;
long l = 3200;
float32 bits[-3.4E38, 3.4E38]0.0ffloat f = (float) 12.34;
float f = 12.34f;
double64 bits[-1.7E308, 1.7E308]0.0double d = 12.34;

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π² Java

НиТС простой Java-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы объявлСния ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° char ΠΈ Ρ‡Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° int прСобразуСтся Π² Π±Π°ΠΉΡ‚ Ρ‡Π΅Ρ€Π΅Π· явноС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

КакоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double

Если ΡΡ‚Π°Ρ‚ΡŒΡ Π²Π°ΠΌ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

ВсСлСнная Java состоит ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… субстанций: ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΠΊΠΎΡ‚Ρ‹. ΠŸΡ€ΠΎ послСдних Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ говорится, поэтому ΠΈΡ… Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ, Π½ΠΎ ΠΎΠ½ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚!

ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Java Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. К Π½ΠΈΠΌ относятся:

ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π½Π΅ оскорблСниС, Π° просто Π΄Π°Ρ‘Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ простом Ρ‚ΠΈΠΏΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Ρ‹Π³Π°Ρ‚ΡŒ, ΡΠΏΠ°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΌΡΡƒΠΊΠ°Ρ‚ΡŒ. Π”Π° Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΡƒΠΌΠ΅Π΅Ρ‚? Ой, всё.

ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ числовыС Ρ‚ΠΈΠΏΡ‹

Π’ΠΈΠΏΠ Π°Π·Ρ€ΡΠ΄Π½ΠΎΡΡ‚ΡŒMINMAX
byte8 Π±ΠΈΡ‚-128127
short16 Π±ΠΈΡ‚-3276832767
int32 Π±ΠΈΡ‚-21474836482147483647
long64 Π±ΠΈΡ‚-92233720368547758089223372036854775807
float32 Π±ΠΈΡ‚-3.4E+383.4E+38
double64 Π±ΠΈΡ‚-1.7E+3081.7E+308

ЦСлочислСнныС Ρ‚ΠΈΠΏΡ‹

Java опрСдСляСт Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ цСлочислСнных Ρ‚ΠΈΠΏΠ°: byte, short, int, long. Они ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ (Java Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния Π±Π΅Π· Π·Π½Π°ΠΊΠ°, ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ языки программирования).

Π’ΠΈΠΏ byte

ΠžΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° byte ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π’ арифмСтичСских выраТСниях с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ° byte вычислСния Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ с Ρ‚ΠΈΠΏΠΎΠΌ int, Ρ‚.Π΅. с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ 32-Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ, Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ 32-Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌ. Π‘ΠΌΠΎΡ‚Ρ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с short.

Π‘Ρ‚Ρ€ΠΎΠΊΡƒ с числом пСрСвСсти Π² Π΄Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ parseByte(String):

Класс Byte являСтся ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π‘Π΅Π· нСобходимости Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π² Android класс Byte.

Π‘Π»ΠΎΠ²ΠΎ Β«Π±Π°ΠΉΡ‚Β» (byte) Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ IBM ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² 1956 Π³ΠΎΠ΄Ρƒ. Оно ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΠΎΡ‚ слова bite («кусок»), Π½ΠΎ Π΅Π³ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Π±ΡƒΠΊΠ²Ρƒ y, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒ со словом Β«bitΒ» (Β«Π±ΠΈΡ‚Β»). Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ слово Β«Π±Π°ΠΉΡ‚Β» ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π»ΠΎ просто число Π±ΠΈΡ‚ΠΎΠ² Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…. Однако Π² сСрСдинС 1960-Ρ…, Π² связи с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ сСмСйства ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² System/360 Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ IBM, это слово стало ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΈΠ· восьми Π±ΠΈΡ‚.

Π›ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ bite ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «ΡƒΠΊΡƒΡ» (сущ.) ΠΈΠ»ΠΈ «ΡƒΠΊΡƒΡΠΈΡ‚ΡŒ» (Π³Π»Π°Π³ΠΎΠ»). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ это наш Ρ€ΠΎΠ΄Π½ΠΎΠΉ «ΠšΡƒΡΡŒ!»

ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double

Π’ΠΈΠΏ short

Π’ арифмСтичСских выраТСниях с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ° short вычислСния Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ с Ρ‚ΠΈΠΏΠΎΠΌ int, Ρ‚.Π΅. с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ 32-Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ, Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ 32-Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌ. НапримСр, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π½Π΅ ΠΏΡ€ΠΎΠΉΠ΄Ρ‘Ρ‚.

Java Π±ΡƒΠ΄Π΅Ρ‚ Ρ€ΡƒΠ³Π°Ρ‚ΡŒΡΡ Π½Π° послСднюю строчку, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ short. Как Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ снова Π² 16-Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ число.

Π―Π²Π½ΠΎ пСрСвСсти строку с числом Π² Ρ‚ΠΈΠΏ short ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ parseShort(String):

Класс Short являСтся ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π‘Π΅Π· нСобходимости Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π² Android класс Short.

Π’ΠΈΠΏ int

Π‘ΠΊΠ°Π·ΠΊΠ° ΠΏΡ€ΠΎ Ρ‚ΠΈΠΏ int

Π—Π°Π΄Π°Π΄ΠΈΠΌ сСбС вопрос, насколько большим ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅ число Ρ‚ΠΈΠΏΠ° int?

НапишСм ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π³Π΄Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΡƒΠΌΠ½ΠΎΠΆΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ саму Π½Π° сСбя. Для Π½Π°Ρ‡Π°Π»Π° присвоим Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2, Π° дальшС строчка Π·Π° строчкой Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΡ‚Ρƒ ΡƒΡ‡Ρ‘Π½ΠΎΠΌΡƒ LogCat. Π’Π΅ΡΡŒ ΠΊΠΎΠ΄ помСстим Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события Ρ‰Π΅Π»Ρ‡ΠΊΠ° Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ нашСй ΡƒΡ‡Π΅Π±Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° ΠΏΠ΅Ρ€Π²ΡƒΡŽ строчку помСстим Π²Ρ‹ΡˆΠ΅ Π΅Ρ‘.

ЗапуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ. Π’ Π½ΠΈΠΆΠ½Π΅ΠΉ части студии ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ панСль Android Monitor ΠΈ Π² Π½Π΅ΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ logcat. НастройтС Π΅Π³ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ наши сообщСния. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ:

ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double

Π§Ρ‚ΠΎ Π·Π° Π±Ρ€Π΅Π΄, скаТСтС Π²Ρ‹. Когда ΠΌΡ‹ ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ 65536 Π½Π° сСбя, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ 0 (Волько Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ ΠΎΠ± этом ΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΈΡ†Π΅ ΠΏΠΎ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅). А ΠΏΠΎΡ‚ΠΎΠΌ, СстСствСнно, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅Ρ‚ 0 Π½Π° 0 ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹.

Π’Ρ‹ Π΅Ρ‰Ρ‘ большС ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅ΡΡŒ, Ссли Π² качСствС Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния Π²ΠΎΠ·ΡŒΠΌΡ‘Ρ‚Π΅ число 3. На этот Ρ€Π°Π· Π²Ρ‹ смоТСтС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°ΠΆΠ΅ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Если Π²Ρ‹ ΠΈ это ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΈΡ†Π΅, Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ завСдСния Π²Π°ΠΌ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ.

Π”Π΅Π»Π΅Π½ΠΈΠ΅ цСлочислСнных чисСл

Π—Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠΈ цСлочислСнных чисСл остаток отбрасываСтся. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. БСдная ΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΈΡ†Π°, Π΅Ρ‘ ΡƒΠ²Π΅Π·ΡƒΡ‚ Π² ΠΏΡΠΈΡ…ΡƒΡˆΠΊΡƒ.

На ноль Π΄Π΅Π»ΠΈΡ‚ΡŒ нСльзя, ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Если Π½ΡƒΠΆΠ΅Π½ ΡƒΠ·Π½Π°Ρ‚ΡŒ остаток ΠΎΡ‚ дСлСния, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ % (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ дСлСния ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ).

Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ класс BigInteger для провСдСния арифмСтичСских дСйствий ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠΉ точности (финансовыС расчёты).

Π’ Java 7 ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°ΠΊ подчёркивания для удобства. НапримСр, Ρ‚Π°ΠΊ:

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚ внимания Π½Π° эти Π·Π½Π°ΠΊΠΈ, Π° Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ ΠΈΠ»ΠΈ ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄. Π’ Android ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ появилась полноцСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Java 7 ΠΈ Π²Π°ΠΌ Π² настройках Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ компилятора.

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΡ‘ΠΌ относится Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ int, Π½ΠΎ ΠΈ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ чисСл.

Как ΡΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку ΠΈΠ»ΠΈ CharSequence Π² int?

Если Ρƒ вас Ρ‚ΠΈΠΏ CharSequence, Ρ‚ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сначала Π² строку ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° toString(), Π° ΠΏΠΎΡ‚ΠΎΠΌ Π² int.

ΠœΠ΅Ρ‚ΠΎΠ΄ parseInt() ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° valueOf():

Как ΡΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ число Π² строку?

Если ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ число ΠΈ строку, Ρ‚ΠΎ Java автоматичСски ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ число Π² строку. ΠŸΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ этим свойством, программисты часто ΠΏΡ€ΠΈΠ±Π°Π²Π»ΡΡŽΡ‚ ΠΊ числу ΠΏΡƒΡΡ‚ΡƒΡŽ строку. Но Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ valueOf():

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²Π΅Π΄ΡƒΡ‰ΠΈΠ΅ Π½ΡƒΠ»ΠΈ

Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ строку ΠΈΠ· числа, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΡ€ΠΈ этом нСсколько Π½ΡƒΠ»Π΅ΠΉ Π²Π½Π°Ρ‡Π°Π»Π΅, Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ format(), Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ число Ρ†ΠΈΡ„Ρ€ Π² самом числС.

Π’ΠΈΠΏ long

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символы l ΠΈΠ»ΠΈ L для обозначСния числа Ρ‚ΠΈΠΏΠ° long. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π³Π»Π°Π²Π½ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹. НапримСр, напишСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ строку Π² Π΄Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ.

Класс Long являСтся ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π‘Π΅Π· нСобходимости Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π² Android класс Long.

Π’ΠΈΠΏΡ‹ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ

Числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ (ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡ… Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ числами) ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ вычислСнии Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… трСбуСтся Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Π΄ΠΎ дСсятичного Π·Π½Π°ΠΊΠ°. НапримСр, это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ вычислСниС ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ корня, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ синуса, косинуса ΠΈ Ρ‚.ΠΏ. БущСствуСт Π΄Π²Π° Ρ‚ΠΈΠΏΠ° с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ: float ΠΈ double, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ числа ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ точности.

Π‘Π»ΠΎΠ²ΠΎ Β«ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π°ΡΒ» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ дСсятичная Ρ‚ΠΎΡ‡ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π² любом мСстС (ΠΎΠ½Π° Β«ΠΏΠ»Π°Π²Π°Π΅Ρ‚Β»). Π’ΠΎΡ‚ ΠΊΠΎΡ‚Ρ‹ ΠΏΠ»Π°Π²Π°Ρ‚ΡŒ Π½Π΅ особСнно Π»ΡŽΠ±ΡΡ‚, поэтому ΠΎΠ½ΠΈ Π½Π΅ float ΠΈ Π½Π΅ double.

Π’ΠΈΠΏ float

Π’ΠΈΠΏ float опрСдСляСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ точности, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 32 Π±ΠΈΡ‚. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΡƒΠ΄ΠΎΠ±Π½Ρ‹, ΠΊΠΎΠ³Π΄Π° трСбуСтся дробная Ρ‡Π°ΡΡ‚ΡŒ Π±Π΅Π· особой точности, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Π΄Π΅Π½Π΅ΠΆΠ½Ρ‹Ρ… сумм.

РСкомСндуСтся Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ символ F ΠΈΠ»ΠΈ f для обозначСния этого Ρ‚ΠΈΠΏΠ°, ΠΈΠ½Π°Ρ‡Π΅ число Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ Ρ‚ΠΈΠΏΠΎΠΌ double.

ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΠ· строки.

Класс Float являСтся ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π‘Π΅Π· нСобходимости Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π² Android класс Float.

Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ класс BigDecimal для провСдСния арифмСтичСских дСйствий ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠΉ точности (финансовыС расчёты).

Π’ΠΈΠΏ double

Π’ΠΈΠΏ double содСрТит Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ числа, Π½ΠΎ ΠΈ слова. БСйчас Π²Π°ΠΌ Π΄ΠΎΠΊΠ°ΠΆΡƒ. Π Π°Π·Π΄Π΅Π»ΠΈΠΌ число Ρ‚ΠΈΠΏΠ° double Π½Π° ноль. Ошибки Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π΅Ρ€Π½Ρ‘Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Infinity (Π‘Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ). Если Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число Π½Π° ноль, Ρ‚ΠΎ вСрнётся -Infinity.

А Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚, Ссли ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π΄Π²Π΅ бСсконСчности? Если Ρ€Π°ΡΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ логичСски, Ρ‚ΠΎ сломаСтся ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, наступит ΠΊΠΎΠ½Π΅Ρ† свСта ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π’ΠΎΠ»Π΄Π΅ΠΌΠΎΡ€Ρ‚Π°. Π― Π΄ΠΎΠ»Π³ΠΎ Π½Π΅ Ρ€Π΅ΡˆΠ°Π»ΡΡ, Π½ΠΎ ΠΏΠΎΡ‚ΠΎΠΌ набрался храбрости ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π».

Π£ΠΌΠ½ΠΎΠΆΠ°Ρ‚ΡŒ Π΄Π²Π΅ бСсконСчности я побоялся. И Π²Π°ΠΌ Π½Π΅ ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ.

Класс Double являСтся ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π‘Π΅Π· нСобходимости Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π² Android класс Double.

ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡ строки Π² double

Π•ΡΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ².

ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡ double Π² строку

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с числами double слСдуСт Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡƒΡ…ΠΎ востро. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Ρ‚Ρ€Ρ‘Ρ… чисСл.

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° числа Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π»ΠΈΡΡŒ, Π° Π²ΠΎΡ‚ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ число ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π»ΠΎΡΡŒ Π² строку Π² странном Π²ΠΈΠ΄Π΅ (Π½Π° самом Π΄Π΅Π»Π΅ это Π½Π°ΡƒΡ‡Π½ΠΎΠ΅ прСдставлСниС числа). И это ΠΌΠΎΠΆΠ΅Ρ‚ источником ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ строки ΠΊΡƒΠ΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° впс» target=»_blank»>сСрвСр. Если впс» target=»_blank»>сСрвСр Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΠΎΡ‚ вас Ρ‚Π°ΠΊΠΎΠΉ подлости, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ошибки ΠΈΠ·-Π·Π° странной записи. НуТно Π½Π°ΠΉΡ‚ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ.

ПослСдний ΠΏΡ€ΠΈΠΌΠ΅Ρ€ самый подходящий для нас, Π½ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, сколько Π·Π½Π°ΠΊΠΎΠ² ΠΈΠ΄Ρ‘Ρ‚ послС дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΈ. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π²Π° пригодятся, Ссли число ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΊΡ€ΡƒΠ³Π»ΠΈΡ‚ΡŒ.

Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ (Ρ‚ΠΈΠΏ char)

Из ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²Ρ‹ΡˆΠ΅ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ символа ΠΈΠ»ΠΈ нСпосрСдствСнно сам символ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слСдуСт ΠΎΠΊΡ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ΅ слово получится ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… символов.

НС слСдуСт ΠΏΡƒΡ‚Π°Ρ‚ΡŒ символ ‘a’ со строкой «a», состоящСй ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа. На экранС ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΎΠ½ΠΈ выглядят ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, Π½ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π²Π΅Π΄ΡƒΡ‚ сСбя ΠΏΠΎ Ρ€Π°Π·Π½ΠΎΠΌΡƒ.

Π₯отя Ρ‚ΠΈΠΏ char ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния Unicode-символов, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ цСлочислСнный Ρ‚ΠΈΠΏ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ слоТСниС ΠΈΠ»ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:

Если Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ch1 Π΅Ρ‰Ρ‘ Π½Π° ΠΎΠ΄Π½Ρƒ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ символ «ΠΉ», Ρ‚ΠΎ Π³Π»ΡƒΠ±ΠΎΠΊΠΎ Π·Π°Π±Π»ΡƒΠΆΠ΄Π°Π΅Ρ‚Π΅ΡΡŒ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ символ содСрТится Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ°ΠΊ int, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ двумя ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈΠ· класса EncodingUtils:

Для стандартных символов ASCII:

Для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ символов:

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ со строками, Π½ΠΎ Ссли ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ строку ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ.

Π’ ΡƒΠΏΡ€ΠΎΡ‰Ρ‘Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, Ссли Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ со стандартными символами ASCII (on 0 Π΄ΠΎ 127), Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ символ ΠΈΠ· int Π΅Ρ‰Ρ‘ ΠΏΡ€ΠΎΡ‰Π΅.

Класс Character

Класс Character являСтся ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ Π²ΠΎΠΊΡ€ΡƒΠ³ Ρ‚ΠΈΠΏΠ° char. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° char, содСрТащСС Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ класса Character, Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ charValue().

Π‘ классом Character Ρ€Π΅Π΄ΠΊΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Π΅Π»ΠΎ Π² Android, Π½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ класс содСрТит ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство констант ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, являСтся Π»ΠΈ символ Ρ†ΠΈΡ„Ρ€ΠΎΠΉ ΠΈΠ»ΠΈ Π±ΡƒΠΊΠ²ΠΎΠΉ, ΠΈΠ»ΠΈ написан Π»ΠΈ символ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ ΠΈΠ»ΠΈ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ рСгистрС.

Π‘ΡƒΠ»Π΅Π²Ρ‹ значСния

Π’ΠΈΠΏ boolean ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для хранСния логичСских Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π΄Π²ΡƒΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: true ΠΈΠ»ΠΈ false. Π”Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ всСгда возвращаСтся ΠΏΡ€ΠΈ использовании ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² сравнСния (большС, мСньшС, Ρ€Π°Π²Π½ΠΎ, большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ, мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ, Π½Π΅ Ρ€Π°Π²Π½ΠΎ). Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… if ΠΈ for.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ, Π³Π΄Π΅ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³:

Π’ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… if ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ укорочСнная запись ΠΏΡ€ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ true:

Java сам ΠΏΠΎΠΉΠΌΡ‘Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ check Π½ΡƒΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ с true.

Класс Boolean

Π•Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ совСт, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΉ ΠΊΠΎ всСм Ρ‚ΠΈΠΏΠ°ΠΌ. Допустим, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ 32 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° boolean:

Π£ΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ 4 Π±Π°ΠΉΡ‚Π° Π½Π° 32 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ 128 Π±Π°ΠΉΡ‚ занятой памяти. А Ссли объявим массив:

Π‘Ρ‡ΠΈΡ‚Π°Π΅ΠΌ: 4 + 8 + 8 + 32 * 1 = 52. Π‘ ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ выравнивания памяти ΠΏΠΎ 8 Π±Π°ΠΉΡ‚, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π½Π΅ 52, Π° 56. Всё Ρ€Π°Π²Π½ΠΎ мСньшС, Ρ‡Π΅ΠΌ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ строку Π² Π±ΡƒΠ»Π΅Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π±ΡƒΠ»Π΅Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² строку.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ²

Когда ΠΌΡ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ дСйствия с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Ρ‚ΠΈΠΏΠ°ΠΌΠΈ. НСльзя ΡƒΠΌΠ½ΠΎΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΡ‚ΠΎΠ² Π½Π° Ρ„ΡƒΡ‚Π±ΠΎΠ»ΡŒΠ½Ρ‹Π΅ мячи, это ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ Π·Π΄Ρ€Π°Π²ΠΎΠΌΡƒ смыслу. Π’Π°ΠΊΠΆΠ΅ ΠΈ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. Если Π²Ρ‹ присваиваСтС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Ρ‚ΠΎ вспоминайтС Ρ‚Π΅ΠΎΡ€ΠΈΡŽ. НапримСр, Π²Ρ‹ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° int ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° long, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ всС числа ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Ρ‚ΠΈΠΏΠ° int Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ чисСл long. Π’ этом случаС Java Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ автоматичСски, Π²Ρ‹ Π΄Π°ΠΆΠ΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅.

Π˜Ρ‚Π°ΠΊ, автоматичСскоС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² осущСствляСтся, Ссли ΠΎΠ±Π° Ρ‚ΠΈΠΏΠ° совмСстимы ΠΈ Π΄Π»ΠΈΠ½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° большС Π΄Π»ΠΈΠ½Ρ‹ исходного Ρ‚ΠΈΠΏΠ°. Π’ этом случаС происходит ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ. Π’Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ любоС число Ρ‚ΠΈΠΏΠ° byte Π² число Ρ‚ΠΈΠΏΠ° int. Вакая опСрация ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ Π±Π΅Π· вашСго участия автоматичСски.

Π’Π°Π±Π»ΠΈΡ†Π° выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² double

Π‘ΠΏΠ»ΠΎΡˆΠ½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ прСобразования, выполняСмыС Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π¨Ρ‚Ρ€ΠΈΡ…ΠΎΠ²Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ говорят ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ потСря точности.

Π’ΠΈΠΏΡ‹ Ρ†Π΅Π»Ρ‹Ρ… чисСл ΠΈ чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ совмСстимы частично. НапримСр, число 5 Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ числом с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ (5.0).

БовсСм Π½Π΅ совмСстимы, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, char ΠΈ boolean.

Π‘ автоматичСским ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΌΡ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ. Рассмотрим Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ число Ρ‚ΠΈΠΏΠ° int Π² число Ρ‚ΠΈΠΏΠ° byte. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ автоматичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ byte мСньшС int. Но, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, число 99 Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ int ΠΈ ΠΊΠ°ΠΊ byte. Π’ этом случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ явноС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ², Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ (ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ с суТСниСм).

Выглядит это ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π²Ρ‹ Π² скобках ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Ρ‚ΠΈΠΏ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ явно привСсти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

БущСствуСт Π΅Ρ‰Ρ‘ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ привСдСния с усСчСниСм. Π­Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ приводится ΠΊ цСлочислСнному Ρ‚ΠΈΠΏΡƒ. Π’ этом случаС отбрасываСтся дробная Ρ‡Π°ΡΡ‚ΡŒ (хвост). НапримСр, число 3.14 Π±ΡƒΠ΄Π΅Ρ‚ усСчСно Π΄ΠΎ числа 3:

Если Ρ€Π°Π·ΠΌΠ΅Ρ€ цСлочислСнной части слишком Π²Π΅Π»ΠΈΠΊ для цСлочислСнного Ρ‚ΠΈΠΏΠ°, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΎ Π΄ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° дСлСния ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

НапримСр, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ число 454.874 Π² Ρ‚ΠΈΠΏ byte:

Рассмотрим Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Допустим Ρƒ нас Π΅ΡΡ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π³Π΄Π΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ допустимого Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°:

ΠŸΡ€ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… a * b ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹ΡˆΠ΅Π» Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для Ρ‚ΠΈΠΏΠΎΠ² byte. Java Π²ΠΎ врСмя вычислСния ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² автоматичСски ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Ρ‚ΠΈΠΏ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° Π΄ΠΎ int ΠΈ ошибки Π½Π΅ происходит.

Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Ρ‚ΡƒΠΏΠΈΠΊ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

Π‘ Π²ΠΈΠ΄Ρƒ всё ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Если Π½Π΅ слишком большС число Ρ‚ΠΈΠΏΠ° byte, Π° ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚ΠΎΠΆΠ΅ Π½Π΅ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Но Java Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅. Π’ΠΎ врСмя вычислСния выраТСния Ρ‚ΠΈΠΏ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² Π±Ρ‹Π» автоматичСски ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ Π΄ΠΎ int, ΠΊΠ°ΠΊ ΠΎΠ± этом Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅. ΠŸΡ€ΠΈ этом Ρ‚ΠΈΠΏ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Ρ‚ΠΎΠΆΠ΅ Π±Ρ‹Π» ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ Π΄ΠΎ int. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычислСния Ρ€Π°Π²Π΅Π½ Ρ‚ΠΈΠΏΡƒ int, Π° ΠΌΡ‹ пытаСмся Π΅Π³ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ b, которая Ρƒ нас объявлСна ΠΊΠ°ΠΊ byte. И это нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠΌ byte. Как ΠΆΠ΅ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· этого полоТСния? Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ явноС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ²:

ΠœΡ‹ рассмотрСли Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹. ΠŸΠΎΡ€Π° ΠΎΠ±ΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΈ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ нСсколько ΠΏΡ€Π°Π²ΠΈΠ».

Π’ΠΈΠΏΡ‹ всСх Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ byte, short, char ΠΏΠΎΠ²Ρ‹ΡˆΠ°ΡŽΡ‚ΡΡ Π΄ΠΎ Ρ‚ΠΈΠΏΠ° int, ΠΊΠ°ΠΊ это Π±Ρ‹Π»ΠΎ рассмотрСно Π²Ρ‹ΡˆΠ΅.

Если ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ long, Ρ‚ΠΎ Ρ‚ΠΈΠΏ всСго выраТСния ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ΡΡ Π΄ΠΎ long.

Если ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ float, Ρ‚ΠΎ Ρ‚ΠΈΠΏ всСго выраТСния ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ΡΡ Π΄ΠΎ float.

Если ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ double, Ρ‚ΠΎ Ρ‚ΠΈΠΏ всСго выраТСния ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ΡΡ Π΄ΠΎ double.

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ (f * b) Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ b ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ΡΡ Π΄ΠΎ float ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ становится float. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ (i / c) Ρ‚ΠΈΠΏ Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ c ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ΡΡ Π΄ΠΎ int ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ становится Ρ‚ΠΈΠΏΠΎΠΌ int. Π’ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ (d * s) Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ s ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ΡΡ Π΄ΠΎ double ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ становится double. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρƒ нас появились Ρ‚Ρ€ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ значСния Ρ‚ΠΈΠΏΠΎΠ²: float, int, double. ΠŸΡ€ΠΈ слоТСнии float ΠΈ int ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ float, Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠΈ с использованиСм float ΠΈ double Ρ‚ΠΈΠΏ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ΡΡ Π΄ΠΎ double, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ становится ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° выраТСния.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *