:::(Info)Following Release 306, Tulip is changing the way numbers are stored in Tables and Completion Records to support capturing, storing, and displaying trailing zeros.
:::
A „Number” adattípus valós szám (pl. 53, 700, 506,2, 7,645). A Tulip numerikus pontossága lehetővé teszi, hogy a számok végén nullák szerepeljenek (pl. 1,90, 7,300, 36,850, 419,38910).
A numerikus pontosság részletei
A „Number” típusú beviteli adatok megőrzik a végső nullákat. A „Number” típusú Input-eken keresztül bevitt operátoradatok a Tulip ökoszisztéma egészében – tároláskor és megjelenítéskor egyaránt – megőrzik a végső nullákat, akár 20 tizedesjegyig. A 20 számjegynél hosszabb beviteli értékeket a legközelebbi 20. számjegyre kerekítik. A táblázatadatok a „Postgres Decimal” nevű új, pontos adattípusban kerülnek tárolásra – a lebegőpontos számok helyett.
A táblázati rekordadatok a tizedesvessző utáni összes számjegyet megjelenítik. A táblázatoka tizedesvessző utáni összes számjegyet oszlopszélességű ellipszissel jelenítenek meg. A korábbi felhasználói felületi korlátozás miatt a rácsnézetben csak az első 3 számjegy volt látható. A tizedesvessző utáni összes számjegy megtekintéséhez kattintson a táblázati rekordra.
A számbeviteli mezők és a kifejezések segítségével a tizedesjegyek száma a kívánt értékre állítható be. Az alkalmazásfejlesztők a következő módszerekkel határozhatják meg és érvényesíthetik a számbeviteli mezőkben és a számításokban megjelenő tizedesjegyek számát: * Számbeviteli érvényesítési szabály a tizedesjegyek pontos számának beállításához.

- Kifejezések a külső bemenetek (pl. csatlakozók, eszközök, gépek, egyéni widgetek) tizedesjegyeinek kezelésére és matematikai számítások elvégzésére. Ezek a kifejezések tartalmazzák a ROUND() és a GETDECIMALPLACES() függvényeket.
- Egy új kifejezés, a TOPLAINTEXT(), teljes pontossággal adja ki a tizedesjegyeket.
További információk ezekről a kifejezésekről az alábbi szakaszban találhatók: A pontosság kezelésére szolgáló kifejezések.
Korlátok és a határon kívüli viselkedés
Maximális érték: JS MAX SAFE INT* Ez a numerikus adatokra vonatkozó szabványos maximális érték a JavaScriptben * A Tulip Tables API határon kívüli értékek kezelése: Az ennél nagyobb bejövő adatok hibát eredményeznek, és nem kerülnek tárolásra.
Maximális tizedesjegyek száma: 20* Ez több, mint a lebegőpontos számok tizedesjegyeinek száma (korábban a Tulip 15 tizedesjegyet támogatott), és minden ismert felhasználási esetet lefed.* A Tulip Tables API határon kívüli értékek kezelése: A 20 tizedesjegynél hosszabb bejövő adatokat a legközelebbi 20. tizedesjegyre kerekítik
Hogyan működik a numerikus pontosság a Tulip egyéb funkcióival?
A végén nullákkal záruló bemeneti adatok csak az alkalmazások számbeviteli mezőire vonatkoznak. A Tulip egyéb adatfolyamai másképp kezelik a numerikus pontosságot:
Külső adatok
A csatlakozók, gépek, eszközök és egyéni widgetek révén beérkező adatok továbbra is karakterláncokként vagy lebegőpontos számokként kerülnek továbbításra, ez a forrás által biztosított adattípustól függ. A numerikus adatok a Tulip Tables-be és a kiegészítő rekordokba történő tároláskor Postgres Decimals formátumra konvertálódnak.
Automatizálások
Az Automation-ek 2025-ben fogják támogatni a végső nullákat. Jelenleg a számításokat végző automatizálások nem tárolják a végső nullákat.
A pontosság kezelésére szolgáló kifejezések
Az alkalmazásfejlesztők a következő kifejezéssel kezelhetik a számjegyeket, amikor számokat tárolnak a Tulipban.
ROUND()
A ROUND() függvény segítségével megadhatja a kívánt tizedesjegyek számát, és a végső nullákat hozzáadhatja az érték tárolása előtt.:::(Internal) (Private notes)
insert screenshot of example expression]
:::
Az alkalmazásfejlesztők a következő kifejezések segítségével kezelhetik a számjegyeket matematikai számítások, például átlagok és összegek kiszámításakor.
GETDECIMALPLACES() és ROUND()
A GETDECIMALPLACES() és/vagy a ROUND() függvényekkel kezelhetik a számítások eredményeinek tizedesjegyeit.
TOPLAINTEXT()
A TOPLAINTEXT() függvényt használja a TOTEXT() helyett, ha egy numerikus érték teljes tizedesjegy-pontosságát szeretné megtekinteni, beleértve a végső nullákat is. Ennek oka, hogy a TOTEXT() visszafelé kompatibilis megvalósítást tart fenn, amely a pontos tizedesjegyeket legfeljebb 16 számjegyű pontosságú JavaScript-számként (azaz lebegőpontos számként) jeleníti meg.
Műszaki részletek
- Ennek a viselkedésnek a részeként a Tulip táblák és kiegészítések a „lebegőpontos számokról” a pontos Postgres Decimals-ra váltottak, amelyek úgy vannak konfigurálva, hogy legfeljebb 20 tizedesjegyet tároljanak.
- Az összes forrásból (azaz alkalmazásokból, a Tulip Table API-ból, csatlakozókból stb.) beérkező numerikus adatok a Tulip táblákban Postgres Decimals formátumban kerülnek tárolásra, és tároláskor legfeljebb 20 számjegyre kerekítődnek.
Történeti adatok
A 306-os kiadás előtt gyűjtött adatok teljes mértékben megmaradtak, a numerikus értékek változatlanok maradtak. Minden új beérkező adatot 20 tizedesjegyre kerekítenek.
Kisebb változások
A számok pontosságának bevezetését követően néhány szélsőséges esetben változások és figyelmeztetések léptek életbe az alkalmazásokban a számok kezelésével kapcsolatban, a tizedes és a lebegőpontos számok közötti különbségek miatt:
- Kifejezések: A JavaScript NaN és Infinity értékek nem léteznek a precíz tizedes számokban — ennek következtében a kifejezések mostantól hibát jelentenek matematikai hiba esetén (pl. negatív szám négyzetgyökének kiszámításakor vagy 0-val való osztáskor). a. Ez azt jelenti, hogy az alkalmazásfejlesztőknek esetleg frissíteniük kell a JS NaN és Infinity értékekkel működő speciális logikákat. Ezek nem támogatott interfészek, ezért nem javasoljuk, hogy az alkalmazásokban a matematikai szélsőséges esetek kezelésére használják őket.
- Kiváltók: Az „Üzenet megjelenítése” funkció most idézőjelekkel keretezi a számokat a. Ez azt jelenti, hogy mostantól a „Üzenet megjelenítése” funkcióban a számok végén lévő nullákat is megjelenítheti.
- Táblázatok: A CSV-exportok mostantól teljes számokat (1e6-nál nagyobbakat)jelenítik meg – korábban a CSV exponenciális jelölést használt a nagy számok (1e6-nál nagyobbak) esetében. a. Ez azt jelenti, hogy az adminisztrátoroknak esetleg frissíteniük kell a CSV-feldolgozó szkripteket, hogy eltávolítsák az exponenciális számok feldolgozására vonatkozó speciális eseteket, ha voltak ilyenek.
- Kifejezések: TOTEXT és a számok ábrázolása – Ha a szöveges ábrázolásban meg kell őrizni a végső nullákat, használja az új TOPLAINTEXT() kifejezést, amely idézőjelek közé teszi a számokat a végső nullák megőrzése érdekében.a. Kifejezések: A TOTEXT() nem teszi idézőjelek közé a számokat, ezért nem őrzi meg a végső nullákat. Ehelyett használja az új TOPLAINTEXT() kifejezést, hogy a számot a végső nullákkal együtt, idézőjelek közé téve jelenítse meg.b. A TOPLAINTEXT() kifejezést azért vezetjük be, hogy biztosítsuk a visszafelé kompatibilitást azoknak az alkalmazásoknak, amelyek korábban esetleg a TOTEXT() kifejezést használták.
Ha bármilyen kérdése van a számok pontosságával kapcsolatban, vegye fel a kapcsolatot a Tulip ügyfélkapcsolati menedzserével, vagy tegyen közzé bejegyzést a közösségi fórumon.
Számformázás és nyelv
A számformázás országonként eltérő, különösen az elválasztók tekintetében. Például egyes országokban (USA, Mexikó, Kína) pontot (.) használnak tizedesvesszőként, és vesszőt (,) ezeres elválasztóként. Más országokban (pl. Európában) vesszőt (,) használnak tizedesvesszőként.
A Tulipban ezek a számformátumok a következő összefüggésekben fontosak: 1. Amikor egy számot megjelenítünk egy Tulip-felhasználó számára, a formátum biztosítja, hogy a felhasználók a helyes értéket értsék meg. 2. Amikor egy felhasználó által beírt adatot elemezzük, a formátum biztosítja, hogy a helyes érték kerüljön rögzítésre a Tulip adatbázisában.
A számformátumot a felhasználó személyes beállításaiban megadott nyelv határozza meg. Ha a felhasználó nem választott ki konkrét nyelvet, a Tulip a böngésző beállításai alapján határozza meg a nyelvet.
Tudjon meg többet a nyelvi beállítások megadásáról.
Note that there is no default instance-level or workspace-level language setting.
Alapértelmezett számformátum az r360 verziótól kezdve
Ugyanazon nyelven belül is előfordulhatnak eltérések a különböző földrajzi helyeken használt számformátumokban. Ahhoz, hogy megértsd ezt a viselkedést, vedd figyelembe a következőket a kívánt nyelveddel kapcsolatban:
Az alábbi nyelvek alapértelmezés szerint vesszőt ( , ) használnak tizedesvesszőként:* bolgár* cseh* dán* holland* észt* finn* francia* német* görög* magyar* indonéz* olasz* lett* litván* norvég* lengyel* portugál* román* orosz* szlovák* szlovén* spanyol* svéd* török* ukrán* vietnámi
Ha felül szeretné írni ezt a viselkedést, vegye fel a kapcsolatot a rendszergazdájával, vagy írjon a Tulip Support címre.
{{snippet.Megtalálta, amit keresett?}}


