Поділитися через


Decimal, Floatі Value функції

Функція Застосовується до
Decimal Copilot Studio Desktop flows Dataverse formula columns Power Platform CLI Dataverse functions
Float Canvas apps Copilot Studio Desktop flows Dataverse formula columns Power Platform CLI Dataverse functions
Value Canvas apps Copilot Studio Desktop flows Dataverse formula columns Model-driven apps Power Platform CLI Dataverse functions Power Pages

Перетворює рядок тексту або інших типів на число.

Опис

Нотатка

Power Apps підтримує Value лише цю функцію, і вона повертає Float значення. Decimal Незабаром буде додано підтримку функцій і Float функцій.

DecimalВикористовуйте , Floatі Value функції, щоб перетворити рядок тексту з числовими символами на числове значення. Використовуйте ці функції, коли потрібно виконати обчислення чисел, які були введені користувачем у вигляді тексту. Ці функції також можна використовувати для перетворення інших типів у число, таких як дата/час і логічний.

Ця Value функція повертає стандартний числовий тип даних для хоста Power Fx, який зазвичай Decimal використовується, і найкращий варіант для більшості випадків. Decimal Використовуйте функції та Float функції, коли для певного сценарію потрібен певний тип даних, наприклад наукове обчислення з дуже великим числом. Щоб отримати додаткові відомості про роботу з цими типами даних, перегляньте розділ Numbers типів даних.

Різні мови інтерпретують , та . по-різному. За замовчуванням текст інтерпретується мовою поточного користувача. Ви можете вказати мову, яку слід використовувати, за допомогою тега мови, використовуючи ті самі теги мови, які повертаються функцією Language.

Примітки щодо формату рядка:

  • На початку рядка можна додати символ грошової одиниці для поточної мови. Символ грошової одиниці ігнорується. Символи валют для інших мов не ігноруються.
  • Рядок може містити знак відсотка (%) в кінці, що вказує, що це відсоток. Число буде поділено на 100 перед поверненням. Відсотки та символи валют не можна змішувати.
  • Рядок може бути в експоненційному форматі, коли 12 x 103 виражається як "12e3".

Якщо номер не має належного формату, ці функції повернуть помилку.

Для перетворення значень дати та часу використовуйте функції DateValue, TimeValue або DateTimeValue.

Синтаксис

Decimal( Рядок [, languageTag ] )
Float( Рядок [, languageTag ] )
Value( Рядок [, languageTag ] )

  • Рядок - обов’язковий. Це рядок, який потрібно перетворити на числове значення.
  • LanguageTag - необов’язковий. Тег мови, якою потрібно аналізувати рядок. Якщо його не вказано, використовується мова поточного користувача.

Decimal( Динамічний )
Float( Динамічний )
Value( Динамічний )

  • Динамічний – обов'язковий аргумент. Динамічне значення, яке представляє число. Прийнятні значення залежать від нетипізованого постачальника. Для JSON очікується, що динамічне значення буде числом JSON, логічним або текстом, який можна перетворити на число. Пам’ятайте, що для спілкування із зовнішніми системами важливо коректно використовувати формати відповідно до регіональних стандартів.

Приклади

Користувач, який виконує ці формули, перебуває у Сполучених Штатах Америки і вибрав англійську мову. Функція Language повертає "en-US". Хост Power Fx використовується Decimal за замовчуванням.

Value і Decimal

Оскільки ми використовуємо хост, який має Decimal як стандартний, Value і Decimal поверне ті самі результати.

Формула Опис Результат
Value( "123.456" )
Decimal( "123.456" )
Використовуватиметься мова за замовчуванням "en-US", яка використовує крапку як десятковий роздільник. 123.456 (Decimal)
Value( "123.456", "es-ES" )
Decimal( "123.456", "es-ES" )
"es-ES" – це тег мови для іспанської в Іспанії. В Іспанії крапка – це роздільник тисяч. 123456 (Decimal)
Value( "123,456" )
Decimal( "123,456" )
Використовуватиметься мова за замовчуванням "en-US", яка використовує кому як роздільник тисяч. 123456 (Decimal)
Value( "123 456", "es-ES" )
Decimal( "123 456", "es-ES" )
"es-ES" – це тег мови для іспанської в Іспанії. В Іспанії кома – це десятковий роздільник. 123.456 (Decimal)
Value( "12.34%" )
Decimal( "12.34%" )
Знак відсотка в кінці рядка вказує на те, що це відсоток. 0.1234 (Decimal)
Value( "$ 12.34" )
Decimal( "$ 12.34" )
Символ грошової одиниці для поточної мови ігнорується. 12.34 (Decimal)
Value( "24e3" )
Decimal( "24e3" )
Експоненційний формат для 24 x 103. 24000 (Decimal)
Value(істина)
Decimal(істина)
Перетворює логічний символ на число, 0 для false і 1 для true 1 Decimal

Float

Функція Float матиме дуже близько до тих самих результатів, що й вище. Оскільки 123,456 не можна точно представити в Float, результатом є наближення, яке дуже близьке (123.456000000000000306954618484E2) і складення обчислень помилок округлення може призвести до неочікуваного результату. Натомість буде Float отриманий тип.

Де речі розходяться, так це якщо використовуються більші або менші числа.

Формула Опис Результат
Float( 1e100 ) Оскільки число 1e100 літералів виходить за межі діапазону Decimal, це призводить до помилки, перш ніж викликати Float функцію. помилка (переповнення)
Decimal( 1e100 ) Та сама проблема, що й у Float функції. помилка (переповнення)
Float( "1e100" ) Число в текстовому рядку міститься в діапазоні Float чисел. 1e100 Float
Decimal( "1e100" ) Число в текстовому рядку виходить за межі діапазону Decimal чисел. помилка (переповнення)
Float( "10000000000.0000000001" ) Число в текстовому рядку міститься в діапазоні Float чисел. Однак число вимагає більшої точності, ніж Float може надати, і буде скорочено. 1 (Float)
Decimal( "10000000000.0000000001" ) Число в текстовому рядку знаходиться в межах діапазону та точності Decimal чисел. 10000000000.0000000001 (Decimal)