숫자 및 수치 정밀도

Prev Next

:::(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.
:::

'Number' 데이터 유형은 실수(예: 53, 700, 506.2, 7.645)입니다. 튤립의 수치 정밀도 덕분에 숫자 뒤에 0을 추가할 수 있습니다(예: 1.90, 7.300, 36.850, 419.38910).

숫자 정밀도에 대한 세부 정보

Number 입력 데이터는 끝자리를 0으로 채웁니다. Number Input를 통해 입력된연산자데이터는 Tulip 생태계 전반에 걸쳐 저장 및 표시 시 소수점 이하 최대 20자리까지 끝자리를 0으로 채웁니다. 20자리 이상의 입력값은 20분의 1 단위까지 반올림됩니다. 테이블 데이터는 부동 소수점(float) 대신 ‘Postgres Decimal ’이라는 새로운 정밀 데이터 유형으로 저장됩니다.

테이블 레코드 데이터는 소수점 뒤의 모든 자릿수를 표시합니다. 테이블은소수점 뒤의 모든 자릿수를 열 너비에 맞춰 줄임표와 함께 표시합니다. 이전 UX의 제한 사항으로 인해 그리드 보기에서는 처음 3자리만 표시되었습니다. 소수점 뒤의 모든 자릿수를 보려면 테이블 레코드를 클릭하십시오.

숫자 입력 및 표현식을 통해 원하는 소수 자릿수를 제어할 수 있습니다. 앱 빌더는 다음 방법을 통해 입력 및 계산 시 자릿수를 지정하고 적용할 수 있습니다: * 정확한 소수 자릿수를 설정하는 숫자 입력 유효성 검사 규칙.

Number input validation for decimals

  • 외부 입력(예: 커넥터, 장치, 기계, 사용자 정의 위젯)의 소수점 자릿수를 관리하고 수학적 계산을 수행하는 표현식. 이러한 표현식에는 ROUND() 및 GETDECIMALPLACES()가 포함됩니다.
  • 새로운 표현식인 TOPLAINTEXT()는 소수점을 완전한 정밀도로 출력합니다.

아래 섹션인 ‘정밀도 관리 표현식’에서 이러한 표현식에 대해 자세히 알아보세요.

제한 및 범위를 벗어난 경우의 동작

최대값: JS MAX SAFE INT* 이는 자바스크립트에서 숫자 데이터에 대한 표준 최대값입니다. * Tulip Tables API의 범위 초과 처리: 이 값보다 큰 입력 데이터는 오류를 발생시키고 저장되지 않습니다.

소수점 이하 최대 자릿수: 20* 이는 부동 소수점(float)의 자릿수보다 많으며(이전 Tulip은 15자릿수를 지원함), 알려진 모든 사용 사례를 포괄합니다.* Tulip Tables API의 범위 초과 처리: 20자릿수를 초과하는 입력 데이터는 20번째 자릿수까지 반올림됩니다.

숫자 정밀도는 다른 Tulip 기능과 어떻게 연동되나요?

끝에 0이 붙은 입력 데이터는 앱의 숫자 입력 필드에만 적용됩니다. Tulip의 다른 데이터 스트림은 숫자 정밀도를 다르게 처리합니다:

외부 데이터

커넥터, 머신, 디바이스 및 사용자 정의 위젯을 통해 들어오는 데이터는 소스에서 제공하는 데이터 유형에 따라 여전히 문자열(String) 또는 부동 소수점(Float) 형식으로 전송됩니다. 숫자 데이터는 Tulip 테이블 및 완성 기록에 저장될 때 Postgres 소수(Decimal) 형식으로 변환됩니다.

자동화

Automation은 2025년 후반에 말미의 0을 지원하게 될 예정입니다. 현재 계산을 수행하는 자동화 기능은 말미의 0을 저장하지 않습니다.

정밀도 관리 표현식

앱 빌더는 다음 표현식을 사용하여 Tulip에 숫자를 저장할 때 자릿수를 관리할 수 있습니다.

ROUND()

ROUND()를 사용하여 원하는 소수 자릿수를 지정하고, 값을 저장하기 전에 뒤에 0을 추가할 수 있습니다.:::(Internal) (Private notes)
insert screenshot of example expression]
:::

앱 개발자는 평균 및 합계 등 수학적 연산을 수행할 때 다음 표현식을 사용하여 자릿수를 관리할 수 있습니다.

GETDECIMALPLACES() 및 ROUND()

GETDECIMALPLACES() 및/또는 ROUND()를 사용하여 계산 결과의 소수점 자릿수를 관리할 수 있습니다.

TOPLAINTEXT()

TOTEXT() 대신 TOPLAINTEXT()를 사용하여, 끝자리를 포함한 숫자 값의 전체 소수점 자릿수를 확인할 수 있습니다. 이는 TOTEXT()가 정밀한 소수점을 최대 16자리의 정밀도를 가진 자바스크립트 숫자(즉, 부동 소수점)로 표시하는 하위 호환성 구현을 유지하고 있기 때문입니다.

기술적 세부 사항

  • 이러한 동작의 일환으로, Tulip 테이블 및 자동 완성 기능은 “부동 소수점(float)”에서 소수점 이하 최대 20자리까지 저장되도록 구성된 정확한 Postgres Decimal로 변경되었습니다.
  • 모든 소스(예: 앱, Tulip 테이블 API, 커넥터 등)에서 들어오는 숫자 데이터는 Tulip 테이블에 Postgres Decimal 형식으로 저장되며, 저장 시 최대 20자리로 반올림됩니다.

이전 데이터

릴리스 306 이전에 수집된 데이터는 수치 값을 그대로 유지하며 완전히 보존되었습니다. 새로 유입되는 모든 데이터는 소수점 이하 20자리로 반올림됩니다.

사소한 변경 사항

정수 정밀도(Numbers Precision) 기능 출시 이후, 소수(decimals)와 부동소수점(floats) 간의 차이로 인해 앱에서 숫자가 처리되는 방식에 몇 가지 예외적인 변경 사항과 주의 사항이 있습니다:

  1. 식(Expressions): 정밀 소수(Decimal) 숫자에는 자바스크립트의 NaN 및 Infinity가 존재하지 않습니다. 그 결과, 수학적 오류 상황(예: 음수의 제곱근 구하기 또는 0으로 나누기)에서 식(Expressions)이 오류를 발생시킵니다. a. 이는 앱 빌더가 JS의 NaN 및 Infinity와 연동되는 특수 사례 로직을 업데이트해야 할 수도 있음을 의미합니다. 이는 지원되는 인터페이스가 아니며, 앱에서 수학적 극한 사례를 처리하기 위해 이를 활용하는 것을 권장하지 않습니다.
  2. 트리거: ‘메시지 표시’에서 숫자를 따옴표로 묶어 표시합니다. a. 즉, 이제 ‘메시지 표시’에서 끝자리의 0을 표시할 수 있게 되었습니다.
  3. 표: CSV 내보내기에서 이제 전체 숫자 (1e6 이상)가표시됩니다. 이전에는 CSV에서 큰 숫자(1e6 이상)에 대해 지수 표기법을 사용했습니다. a. 따라서 관리자는 지수 표기법 처리를 위한 특수 케이스가 있었다면, 이를 제거하기 위해 CSV 처리 스크립트를 업데이트해야 할 수 있습니다.
  4. 표현식: TOTEXT 및 숫자 표현 – 텍스트 표현에서 끝자리를 0으로 유지하는 경우, 숫자를 따옴표로 묶어 끝자리를 0으로 유지하는 새로운 표현식 TOPLAINTEXT()를 사용하십시오.a. 표현식: TOTEXT()는 숫자를 따옴표로 묶지 않으므로 끝자리를 0으로 유지하지 않습니다. 대신, 새로운 TOPLAINTEXT()를 사용하여 뒤따르는 0이 포함된 전체 숫자를 따옴표로 묶어 표시하십시오.b. TOTEXT() 표현식을 사용했을 수 있는 앱에 대한 하위 호환성을 유지하기 위해 TOPLAINTEXT()를 새로운 표현식으로 도입합니다.

숫자 정밀도 처리에 대해 궁금한 점이 있으면 Tulip 고객 성공 관리자에게 문의하거나 커뮤니티 스레드에 게시해 주세요.

숫자 서식 및 언어

숫자 서식은 국가에 따라 다르며, 특히 구분 기호의 경우 차이가 큽니다. 예를 들어, 일부 국가(미국, 멕시코, 중국)에서는 소수점 구분자로 점(.)을, 천 단위 구분자로 쉼표(,)를 사용합니다. 다른 국가(예: 유럽)에서는 소수점 구분자로 쉼표(,)를 사용합니다.

Tulip에서 이러한 숫자 서식은 다음과 같은 상황에서 중요합니다. 1. Tulip 사용자에게 숫자를 표시할 때, 서식을 통해 사용자가 올바른 값을 이해할 수 있도록 보장합니다. 2. 사용자가 입력한 내용을 파싱할 때, 서식을 통해 올바른 값이 Tulip 데이터에 기록되도록 보장합니다.

숫자 형식은 개인 설정에서 정의된 현재 사용자의 언어에 따라 결정됩니다. 사용자가 특정 언어를 선택하지 않은 경우, Tulip은 브라우저 설정을 기반으로 언어를 추론합니다.

언어 기본 설정을 지정하는 방법에 대해 알아보세요.

Only user-level language settings

Note that there is no default instance-level or workspace-level language setting.

r360 기준 기본 숫자 형식

동일한 언어 내에서도 지역별로 사용되는 숫자 형식에 차이가 있을 수 있습니다. 이러한 동작을 이해하려면 원하는 언어에 대해 다음 사항을 참고하십시오:

다음 언어들은 기본적으로 쉼표( , )를 소수점 구분자로 사용합니다:* 불가리아어* 체코어* 덴마크어* 네덜란드어* 에스토니아어* 핀란드어* 프랑스어* 독일어* 그리스어* 헝가리어* 인도네시아어* 이탈리아어* 라트비아어* 리투아니아어* 노르웨이어* 폴란드어* 포르투갈어* 루마니아어* 러시아어* 슬로바키아어* 슬로베니아어* 스페인어* 스웨덴어* 터키어* 우크라이나어* 베트남어

이 동작을 변경하려면 시스템 관리자에게 문의하거나 Tulip Support 으로 이메일을 보내주십시오.

{{snippet.원하는 정보를 찾으셨나요?}}