Rotundarea rezultatelor operațiilor aritmetice în interogări, cursuri 1c - materiale metodologice

Recomandarea metodică (sfaturi utile)

1. Dacă ordinele numărătorului și numitorului sunt cunoscute în avans în operațiunea de divizare, ar trebui să fie posibil să se evite divizarea numărului ordinului mic cunoscut printr-un număr evident de ordine mare. De exemplu, în loc de:







2. Atunci când se execută operații aritmetice în interogările bazei de date, platforma 1C: Enterprise suportă acuratețea calculului până la 8 biți fracționali. Cu toate acestea, din cauza naturii diferitelor baze de date, în unele situații, acuratețea rezultatelor poate fi diferită de 8. Pentru mai multe informații cu privire la calculul rezultat de biți pot fi citite în articolul expresiile rezultat biți și funcții agregate în limba de interogare.

Dacă precizia rezultatului executării interogării la baza de date care conține

  • operațiunile aritmetice ale diviziunii,
  • agregate funcții MIDDLE,
  • operații aritmetice de multiplicare, dacă fiecare dintre factori poate avea o parte fracționată,

diferă în funcție de DBMS diferite, se recomandă ca operanzii și / sau rezultatele acestor operații să fie aplicate operatorului de reducere explicită a adâncimii bitului și a acurateței datelor numerice:







Instrucțiunea EXPRESS trebuie aplicată operanzilor, dacă precizia rezultatului rezultat este insuficientă pentru orice DBMS. De exemplu, aveți nevoie de 10 cifre după punctul zecimal și veți obține 6.

În acest caz, lățimea totală a biților indicată de operanzi trebuie să fie minimă, dar nu mai mică decât cea care este suficientă pentru a reprezenta valorile fiecărui operand. Suprastificarea neautorizată a adâncimii de biți poate duce la o pierdere de precizie în calculele ulterioare și la o oarecare încetinire a vitezei de executare a interogării.

Este important să rețineți că diferitele DBMS-uri au restricții diferite asupra zecimalelor zecimale maxime. Restricția cea mai restrictivă este cea de 31 de cifre din părțile întregi și fracționate. Cu cât este mai mică valoarea biților pentru operanzi, cu atât este mai mare acuratețea rezultatului. De exemplu, în cazul în care, ca rezultat are nevoie de cel puțin 10 biți din partea fracționară, primul operand este în mod deliberat plasat în 15 biți din partea întreagă, iar al doilea operand este în mod deliberat plasat în partea întreagă 5 cifre, expresia poate fi scrisă ca:

Operatorul EXPRESS trebuie aplicat la rezultat dacă acuratețea calculelor pentru toate DBMS este suficientă, dar pe unele este mai mare, iar pe altele este mai mică. În acest caz, adâncimea de biți totală indicată a rezultatului trebuie să fie minimă, dar nu mai mică decât cea care este suficientă pentru a reprezenta valorile rezultatelor. Dacă în exemplul de mai sus se știe că numitorul nu poate fi mai mic decât 0.00001, atunci 20 de biți din întreaga parte sunt suficiente pentru a reprezenta rezultatul. În acest caz, expresia poate fi scrisă ca:

Uneori este recomandabil să efectuați reducerea la precizia cerută atât a operanzilor, cât și a rezultatului. De exemplu:







Trimiteți-le prietenilor: