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


Десяткові, плаваючі та значенні функції

Застосовується до: стовпців Dataverse формул програм Canvas Потоків робочого столу Командного Power Pages Power Platform рядка на основі моделі

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

Опис

Нотатка

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

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

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

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

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

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

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

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

Синтаксис

Decimal( String [, LanguageTag ] )
float( Рядок [, LanguageTag ] )
value( String [, LanguageTag ] )

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

Десятковий двійковий ( нетипізований )
Float(Нетипований)
Значення ( нетипізоване )

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

Приклади

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

Значення і десятковий дріб

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

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

Float

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

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

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