Π’ процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ ΠΈ написания ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² Π² срСдС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ программисты часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ прСобразования Π΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… чисСл Π² Ρ†Π΅Π»Ρ‹Π΅. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ расчСтС количСства Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… для ΠΎΠ±ΠΌΠ΅Π½Π° с внСшними систСмами, Π³Π΄Π΅ Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π·Π½Π°ΠΊΠΈ послС запятой.

Однако простая Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд Π·Π°Π΄Π°Ρ‡Π° Β«ΠΊΠ°ΠΊ ΠΎΠΊΡ€ΡƒΠ³Π»ΠΈΡ‚ΡŒ Π² 1Π‘ Π΄ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎΒ» Ρ‚Π°ΠΈΡ‚ Π² сСбС мноТСство ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Ρ… ΠΊΠ°ΠΌΠ½Π΅ΠΉ. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ€Π°ΡΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΡŽ сумм Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ…, ошибкам Π² Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΡ‚Ρ‡Π΅Ρ‚Π°Ρ… ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌΡƒ повСдСнию Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² распрСдСлСния. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ основныС инструмСнты ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, ΠΈΡ… отличия ΠΈ спСцифику примСнСния Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсиях ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ.

Рассмотрим стандартныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ языка запросов ΠΈ встроСнного языка, Π° Ρ‚Π°ΠΊΠΆΠ΅ алгоритмичСскиС ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ спСцифичСских ΠΏΡ€Π°Π²ΠΈΠ» округлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ стандартными срСдствами.

Бтандартная функция ΠžΠΊΡ€ ΠΈ Π΅Ρ‘ Ρ€Π΅ΠΆΠΈΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ инструмСнтом для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ чисСл Π² 1Π‘ являСтся функция ΠžΠΊΡ€. Она ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π° ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ прилоТСния, Ρ‚Π°ΠΊ ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ запросов ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Бинтаксис Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ самого числа ΠΈ количСства Π·Π½Π°ΠΊΠΎΠ² послС запятой, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅ число, Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ слСдуСт ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ноль. Однако ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠΌ здСсь являСтся Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” Ρ€Π΅ΠΆΠΈΠΌ округлСния. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ссли Ρ€Π΅ΠΆΠΈΠΌ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ явно, систСма ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ€Π΅ΠΆΠΈΠΌ 0.5, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ блиТайшСго Ρ†Π΅Π»ΠΎΠ³ΠΎ, Π³Π΄Π΅ дробная Ρ‡Π°ΡΡ‚ΡŒ 0.5 округляСтся Π² Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ сторону (для ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл).

Π’ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… вСрсии 8.3 ΠΈ Π²Ρ‹ΡˆΠ΅ доступСн Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ процСссом Ρ‡Π΅Ρ€Π΅Π· пСрСчислСниС Π Π΅ΠΆΠΈΠΌΠžΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΡ. Π­Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ нСоднозначности ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ для Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Π²Π°ΡˆΡƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ.

πŸ’‘

ВсСгда явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ Ρ€Π΅ΠΆΠΈΠΌ округлСния Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠžΠΊΡ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ³ΠΎ повСдСния ΠΏΡ€ΠΈ пСрСносС ΠΊΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ вСрсиями ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘.

БущСствуСт нСсколько основных Ρ€Π΅ΠΆΠΈΠΌΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ критичСски Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычислСний:

  • πŸ”Ή ΠžΠΊΡ€.Π’Π²Π΅Ρ€Ρ… β€” число всСгда округляСтся Π² Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ сторону, Π΄Π°ΠΆΠ΅ Ссли дробная Ρ‡Π°ΡΡ‚ΡŒ минимальна (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 10.01 прСвратится Π² 11).
  • πŸ”Ή ΠžΠΊΡ€.Π’Π½ΠΈΠ· β€” отбрасываСт Π΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ, фактичСски работая ΠΊΠ°ΠΊ усСчСниС числа (10.99 прСвратится Π² 10).
  • πŸ”Ή ΠžΠΊΡ€.Π‘Π»ΠΈΠΆΠ°ΠΉΡˆΠ΅Π΅ β€” классичСскоС матСматичСскоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: Π΄Ρ€ΠΎΠ±ΡŒ мСньшС 0.5 отбрасываСтся, большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½Π° 0.5 ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ†Π΅Π»ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ.
  • πŸ”Ή ΠžΠΊΡ€.По ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ β€” Π°Π½Π°Π»ΠΎΠ³ Ρ€Π΅ΠΆΠΈΠΌΠ° 0.5, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² бухгалтСрских расчСтах ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

НСкоррСктный Π²Ρ‹Π±ΠΎΡ€ Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ систСматичСской ошибкС Π² Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, ΠΏΡ€ΠΈ массовом расчСтС НДБ ΠΈΠ»ΠΈ распрСдСлСнии косвСнных расходов Ρ€Π°Π·Π½ΠΈΡ†Π° Π² ΠΊΠΎΠΏΠ΅ΠΉΠΊΠ°Ρ… Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π»ΠΈΡ‚ΡŒΡΡ Π² сущСствСнноС расхоТдСниС ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠΉ суммы Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

Ѐункция Π¦Π΅Π»: усСчСниС Π±Π΅Π· Π°Π½Π°Π»ΠΈΠ·Π° Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ части

Часто Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡƒΡ‚Π°ΡŽΡ‚ понятиС Β«ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅Β» ΠΈ «отбрасываниС Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ части». Если ваша Π·Π°Π΄Π°Ρ‡Π° состоит Π½Π΅ Π² матСматичСском ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠΈ, Π° Π² простом ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ Ρ†Π΅Π»ΠΎΠΉ части числа ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ всСго, Ρ‡Ρ‚ΠΎ послС запятой, Ρ‚ΠΎ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π¦Π΅Π».

Π­Ρ‚Π° функция Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрСС, Ρ‡Π΅ΠΌ ΠžΠΊΡ€, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ выполняСт логичСских ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ значСния Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ части. Она просто Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ†Π΅Π»ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ числа.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Ѐункция Π¦Π΅Π» для ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл округляСт Β«Π² сторону нуля» Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… контСкстах ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ, Π½ΠΎ тСхничСски ΠΎΠ½Π° просто отбрасываСт Π΄Ρ€ΠΎΠ±ΡŒ. Число -5.9 прСвратится Π² -5, Π° Π½Π΅ Π² -6, Ρ‡Ρ‚ΠΎ отличаСтся ΠΎΡ‚ матСматичСского округлСния Π²Π½ΠΈΠ·.

ИспользованиС Π¦Π΅Π» ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΎ Π² случаях, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с физичСскими Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌΠΈ ΠΏΠΎ своСй ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅ Π² Π΄Π°Π½Π½ΠΎΠΌ контСкстС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ расчСтС количСства ΠΏΠΎΠ»Π½Ρ‹Ρ… ΠΊΠΎΡ€ΠΎΠ±ΠΎΠΊ ΠΈΠ»ΠΈ ΠΏΠ°Π»Π»Π΅Ρ‚, Π³Π΄Π΅ нСполная Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Π½Π΅ учитываСтся.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠžΠΊΡ€, функция Π¦Π΅Π» Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ€Π΅ΠΆΠΈΠΌΠΎΠ². Она Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΈ всСгда Π²Π΅Π΄Π΅Ρ‚ сСбя ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΊΠΎΠ΄Π°, Π½ΠΎ сниТаСт Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ нСобходимости Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ слоТныС бухгалтСрскиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹.

β˜‘οΈ Π’Ρ‹Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ числа

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

ΠžΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π² запросах 1Π‘: синтаксис ΠΈ особСнности

ΠŸΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… нСпосрСдствСнно Π² языкС запросов 1Π‘ Ρ‚Π°ΠΊΠΆΠ΅ доступна функция ОКР. Бинтаксис Π² запросах Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ отличаСтся ΠΎΡ‚ встроСнного языка, Π½ΠΎ Π»ΠΎΠ³ΠΈΠΊΠ° остаСтся ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΉ. Π­Ρ‚ΠΎ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΡŽ ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° сторонС Π‘Π£Π‘Π”, Π½Π΅ выгруТая лишниС записи Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ прилоТСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Π² тСкстС запроса выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ВЫБРАВЬ

НомСнклатура.НаимСнованиС,

ОКР(РСгистрНакоплСния.ΠžΡΡ‚Π°Ρ‚ΠΊΠΈ.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ, 15, 0) КАК ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠ¦Π΅Π»ΠΎΠ΅

Π˜Π—

РСгистрНакоплСния.ΠžΡΡ‚Π°Ρ‚ΠΊΠΈ КАК РСгистрНакоплСния.ΠžΡΡ‚Π°Ρ‚ΠΊΠΈ

Π—Π΄Π΅ΡΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ (15) ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° максимальноС количСство Π·Π½Π°ΠΊΠΎΠ² Π² числС для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ точности вычислСний Π‘Π£Π‘Π” ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ΠΌ, Π° Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ (0) Π·Π°Π΄Π°Π΅Ρ‚ ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΡƒΡŽ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ β€” Ρ†Π΅Π»ΠΎΠ΅ число. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ точности вычислСний Π²Π°ΠΆΠ΅Π½ для избСТания ошибок ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими объСмами Π΄Π°Π½Π½Ρ‹Ρ….

Π’ запросах Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ€Π΅ΠΆΠΈΠΌΡ‹ округлСния, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ строкой ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· константы, Π² зависимости ΠΎΡ‚ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π’ старых вСрсиях часто использовались числовыС ΠΊΠΎΠ΄Ρ‹ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² (0, 1, -1), Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π»ΠΎ ΠΊΠΎΠ΄ ΠΌΠ΅Π½Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ.

Ѐункция ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ использования ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ
ΠžΠΊΡ€() ВстроСнный язык, Запросы БрСдняя Высокая (Ρ€Π΅ΠΆΠΈΠΌΡ‹)
Π¦Π΅Π»() ВстроСнный язык Высокая Низкая (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ отсСчСниС)
Π€ΠΎΡ€ΠΌΠ°Ρ‚() Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ строк Низкая БрСдняя (для Π²Ρ‹Π²ΠΎΠ΄Π°)

ΠŸΡ€ΠΈ использовании округлСния Π² запросах слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ Π‘Π£Π‘Π” (MS SQL, PostgreSQL, Oracle) ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ свои Π½ΡŽΠ°Π½ΡΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ матСматичСских Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, хотя ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ стараСтся Π½ΠΈΠ²Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти различия.

πŸ“Š Π“Π΄Π΅ Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅?
Π’ ΠΎΡ‚Ρ‡Π΅Ρ‚Π°Ρ… Π‘ΠšΠ”
Π’ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ
Π’ рСгистраторах
Π’ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ…

Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ чисСл для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ

Иногда Π·Π°Π΄Π°Ρ‡Π° стоит Π½Π΅ Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π° лишь Π² ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ числа ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΈΠ»ΠΈ Π² ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ самого значСния ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ излишним ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π²Ρ€Π΅Π΄Π½Ρ‹ΠΌ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния цСлостности Π΄Π°Π½Π½Ρ‹Ρ….

Для этих Ρ†Π΅Π»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция Π€ΠΎΡ€ΠΌΠ°Ρ‚. Она позволяСт Π·Π°Π΄Π°Ρ‚ΡŒ шаблон Π²Ρ‹Π²ΠΎΠ΄Π°, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ отобраТСния. НапримСр, шаблон "Π§Π¦=15; Π§Π”Π¦=0" ΡƒΠΊΠ°ΠΆΠ΅Ρ‚ систСмС ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ число с 15 Π·Π½Π°ΠΊΠ°ΠΌΠΈ всСго ΠΈ 0 Π·Π½Π°ΠΊΠ°ΠΌΠΈ послС запятой.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ: функция Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ строку, Π° Π½Π΅ число. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ дальнСйшиС матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ прСобразования Ρ‚ΠΈΠΏΠ°, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкам Ρ‚ΠΈΠΏΠ° Β«ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ значСния ΠΊ Ρ‚ΠΈΠΏΡƒ Число Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎΒ».

ИспользованиС форматирования ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² ΠΌΠ°ΠΊΠ΅Ρ‚Π°Ρ… Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ Π² полях Ρ„ΠΎΡ€ΠΌΡ‹, Π³Π΄Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ восприятиС Π²Π°ΠΆΠ½Π΅Π΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ точности. Π­Ρ‚ΠΎ позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Π±Π°Π·Π΅ Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ значСния с ΠΊΠΎΠΏΠ΅ΠΉΠΊΠ°ΠΌΠΈ, Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½Π½Ρ‹Π΅ суммы.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ сохраняйтС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π² числовыС поля Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ рСгистров. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ошибкам ΠΏΡ€ΠΈ записи, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΏΠΎΠ»Π΅ оТидаСтся Ρ‚ΠΈΠΏ Число, Π° ΠΏΡ€ΠΈΠ΄Π΅Ρ‚ Π‘Ρ‚Ρ€ΠΎΠΊΠ°.

Π’ систСмС ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (Π‘ΠšΠ”) настройки форматирования выносятся Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ слой настроСк ΠΎΡ‚Ρ‡Π΅Ρ‚Π°, Ρ‡Ρ‚ΠΎ позволяСт Π³ΠΈΠ±ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π±Π΅Π· измСнСния тСкста запроса.

ΠΡŽΠ°Π½ΡΡ‹ округлСния ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл

Одной ΠΈΠ· самых частых ΠΏΡ€ΠΈΡ‡ΠΈΠ½ ошибок Π² расчСтах 1Π‘ являСтся нСкоррСктная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° округлСния для чисСл мСньшС нуля Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΈΠ½Π°Ρ‡Π΅, Ρ‡Π΅ΠΌ для ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…, ΠΈ это часто упускаСтся ΠΈΠ· Π²ΠΈΠ΄Ρƒ ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π°.

НапримСр, ΠΏΡ€ΠΈ использовании Ρ€Π΅ΠΆΠΈΠΌΠ° округлСния Β«Π’Π²Π΅Ρ€Ρ…Β» ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число -5.2 ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΎ Π΄ΠΎ -5 (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ -5 большС, Ρ‡Π΅ΠΌ -5.2), Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ оТидаСтся -6. Π Π΅ΠΆΠΈΠΌ Β«Π’Π½ΠΈΠ·Β» для Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ числа даст -6.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ логичСских ошибок, рСкомСндуСтся всСгда Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ округлСния Π½Π° Π½Π°Π±ΠΎΡ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, содСрТащСм ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ ноль.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ слСдуСт ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ ситуации, ΠΊΠΎΠ³Π΄Π° дробная Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π²Π½Π° Ρ€ΠΎΠ²Π½ΠΎ 0.5. Π’ Ρ€Π°Π·Π½Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ: ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ Ρ‡Π΅Ρ‚Π½ΠΎΠ³ΠΎ (банковскоС ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅) ΠΈΠ»ΠΈ всСгда Π² Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ сторону ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ.

БанковскоС ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… финансовых систСмах ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ округлСния Π΄ΠΎ блиТайшСго Ρ‡Π΅Ρ‚Π½ΠΎΠ³ΠΎ числа для значСния 0.5. Π­Ρ‚ΠΎ сниТаСт ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Ρ‹Π±ΠΎΡ€ΠΊΠ°Ρ…. Π’ 1Π‘ это рСализуСтся Ρ‡Π΅Ρ€Π΅Π· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ настройки ΠΈΠ»ΠΈ кастомныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Если ваша конфигурация Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π²Π°Π»ΡŽΡ‚Π°ΠΌΠΈ, Π³Π΄Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ остатки ΠΈΠ»ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ округлСния соотвСтствуСт трСбованиям бухгалтСрской ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ прСдприятия.

АлгоритмичСскоС ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ ΠΈ кастомныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСдостаточно, Ссли трСбуСтся Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ блиТайшСго ΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ числа (шага). Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Ρ†Π΅Π½Ρ‹ Π΄ΠΎ 99 ΠΊΠΎΠΏΠ΅Π΅ΠΊ ΠΈΠ»ΠΈ количСства Ρ‚ΠΎΠ²Π°Ρ€Π° Π΄ΠΎ Ρ†Π΅Π»ΠΎΠΉ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ комбинация матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Часто примСняСтся Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° с Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° шаг округлСния. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для округлСния Π΄ΠΎ блиТайшСго ΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ значСния:

Ѐункция ΠžΠΊΡ€ΡƒΠ³Π»ΠΈΡ‚ΡŒΠ”ΠΎΠ¨Π°Π³Π°(Π—Π½Π°Ρ‡ Число, Π—Π½Π°Ρ‡ Π¨Π°Π³)

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠžΠΊΡ€(Число / Π¨Π°Π³, 15, 0) * Π¨Π°Π³;

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт Π³ΠΈΠ±ΠΊΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΏΠΎΠ΄ Π»ΡŽΠ±Ρ‹Π΅ бизнСс-трСбования. Однако стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: Π²Ρ‹Π·ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Ρ†ΠΈΠΊΠ»Π°Ρ… ΠΏΠΎ большим массивам Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ систСмы.

Π’Π°ΠΊΠΆΠ΅ сущСствуСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Β«ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой» ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с дСсятичными дробями Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ систСмС счислСния ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Число 0.1 Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎ прСдставлСно Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ накоплСнию ΠΌΠΈΠΊΡ€ΠΎ-ошибок.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ сравнСнии ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½Π½Ρ‹Ρ… чисСл Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Β«Π Π°Π²Π½ΠΎΒ» (=) для Ρ‚ΠΈΠΏΠΎΠ² Число. ВсСгда примСняйтС сравнСниС с допуском (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅Π½Π΅Π΅ 0.001), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок ΠΈΠ·-Π·Π° машинной точности.

Для критичСски Π²Π°ΠΆΠ½Ρ‹Ρ… финансовых расчСтов рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ЀиксированноСЧисло ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΏΠ΅ΠΉΠΊΠΈ вмСсто Ρ€ΡƒΠ±Π»Π΅ΠΉ), выполняя ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° этапС отобраТСния.

πŸ’‘

Для нСстандартных шагов округлСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ: ΠžΠΊΡ€(Число / Π¨Π°Π³) * Π¨Π°Π³. Π­Ρ‚ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π²ΠΎ всСх вСрсиях 1Π‘.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠžΠΊΡ€ ΠΈ Π¦Π΅Π» Π² 1Π‘?

Ѐункция ΠžΠΊΡ€ выполняСт матСматичСскоС ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ части ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° (Π²Π²Π΅Ρ€Ρ…, Π²Π½ΠΈΠ·, ΠΏΠΎ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠ΅). Ѐункция Π¦Π΅Π» просто отбрасываСт Π΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ, возвращая Ρ†Π΅Π»ΠΎΠ΅ число, блиТайшСС ΠΊ Π½ΡƒΠ»ΡŽ Π² сторону ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ модуля Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ части.

Как ΠΎΠΊΡ€ΡƒΠ³Π»ΠΈΡ‚ΡŒ число Π΄ΠΎ сотСн Π² 1Π‘?

Для округлСния Π΄ΠΎ сотСн Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ число Π½Π° 100, ΠΎΠΊΡ€ΡƒΠ³Π»ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΄ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ, Π° Π·Π°Ρ‚Π΅ΠΌ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π½Π° 100. Π€ΠΎΡ€ΠΌΡƒΠ»Π°: ΠžΠΊΡ€(Число / 100, 0) * 100.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π² запросС Π΄Π°Π΅Ρ‚ ΠΈΠ½ΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Ρ‡Π΅ΠΌ Π² ΠΊΠΎΠ΄Π΅?

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ·-Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π² точности вычислСний Π‘Π£Π‘Π” ΠΈ встроСнного языка 1Π‘, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·-Π·Π° нСявного привСдСния Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π² запросС. РСкомСндуСтся явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ точности Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ОКР Π²Π½ΡƒΡ‚Ρ€ΠΈ запроса.

МоТно Π»ΠΈ ΠΎΠΊΡ€ΡƒΠ³Π»ΡΡ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа Π² 1Π‘?

Π”Π°, всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ округлСния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа. Однако Π²Π°ΠΆΠ½ΠΎ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ округлСния, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Β«Π²Π²Π΅Ρ€Ρ…Β» для ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π² сторону нуля (ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ значСния), Π° Π½Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ модуля.

Как ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок ΠΏΡ€ΠΈ ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠΈ Π²Π°Π»ΡŽΡ‚Ρ‹?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΈΠΏ ЀиксированноСЧисло для ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… вычислСний ΠΈΠ»ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ суммы Π² Ρ†Π΅Π»Ρ‹Ρ… Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Ρ… (ΠΊΠΎΠΏΠ΅ΠΉΠΊΠ°Ρ…). ΠžΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅Π΄ записью Π² рСгистр ΠΈΠ»ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π΅ΠΆΠΈΠΌ «По ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈΒ».