Функции "Десятичное число", "Число с плавающей точкой" и "Значение"
Применимо к: Приложениям Canvas Dataverse Столбцам формул Потокам рабочего стола Приложениям на основе моделей Power Pages Power Platform CLI
Преобразует строку текста или других типов в число.
Description
Заметка
Power Apps поддерживает только функцию Значение и возвращает значение Число с плавающей точкой. Поддержка функций Десятичное число и Число с плавающей точкой будет добавлена в ближайшее время.
Используйте функции Десятичное число, Число с плавающей точкой и Значение для преобразования текстовую строку, содержащую цифры, в числовое значение. Эти функции используется, когда требуется выполнять вычисления с числами, введенными пользователем в виде текста. Эти функции также можно использовать для преобразования других типов в числа, например даты/времени и логического значения.
Функция Значение вернет числовой тип данных по умолчанию для узла Power Fx, который вы используете, обычно это Десятичное число и лучший выбор для большинства ситуаций. Используйте функции Десятичное число и Число с плавающей точкой, когда вам нужен определенный тип данных для определенного сценария, например научный расчет с очень большим числом. Дополнительные сведения о работе с этими типами данных см. в разделе "Числа" в типах данных.
Разные языки по-разному интерпретируют знаки , и .. По умолчанию текст интерпретируется на языке текущего пользователя. Можно указать используемый язык с помощью тега языка, значение которого можно получить вызовом функции Language.
Примечания к формату строки:
- Строка может начинаться с символа валюты для текущего языка. Такой символ валюты игнорируется. Символы валют для других языков не игнорируются.
- Строка может содержать знак процента (%) в конце, который означает, что значение указано в процентах. В этом случае перед возвращением число будет разделено на 100. Проценты и символы валют сочетать невозможно.
- Строка может быть записана в экспоненциальном формате, когда 12 x 103 выражается как "12e3".
Если число имеет неправильный формат, эти функции вернут ошибку.
Для преобразования значений даты и времени используйте функции DateValue, TimeValue или DateTimeValue.
Синтаксис
Десятичный( String [, LanguageTag ] )
Float( String [, LanguageTag ] )
Значение( Строка [, ТегЯзыка ] )
- Строка - Обязательно. Строка для преобразования в числовое значение.
- LanguageTag - Необязательно. Тег языка, для которого будет проводиться анализ строки. Если тег не указан, используется язык текущего пользователя.
Десятичная( Нетипизированная )
Плавающий( Нетипизированный )
Значение( Нетипизировано )
- Нетипизировано - Обязательно. нетипизированный объект , представляющий число. Допустимые значения зависят от нетипизированного поставщика. В случае JSON ожидается, что нетипизированный объект будет числом, логическим значением или текстом JSON, которые можно преобразовать в число. Имейте в виду, что форматы, связанные с языковым стандартом, являются важными факторами при обмене данными с внешними системами.
Примеры
Пользователь, выполняющий эти формулы, находится в США и использует английский язык. Функция Language возвращает значение "en-US". Узлы Power Fx по умолчанию используют тип данных Десятичное число.
Значение и десятичное число
Поскольку мы используем узел, который по умолчанию имеет значение Десятичное число, Значение и Десятичное число вернет те же результаты.
Формула | Description | Result |
---|---|---|
Значение( "123.456" ) Десятичная( "123.456" ) |
По умолчанию будет использоваться язык "en-US", в котором десятичный разделитель — точка. | 123.456 (Decimal) |
Значение( "123.456", "es-ES" ) Десятичное( "123.456", "es-ES" ) |
"es-ES" — тег для испанского языка в Испании. В Испании точка используется для отделения тысяч. | 123456 (Decimal) |
Значение( "123,456" ) Десятичная( "123,456" ) |
По умолчанию будет использоваться язык "en-US", в котором разделитель тысяч — запятая. | 123456 (Decimal) |
Значение( "123,456", "es-ES" ) Десятичная( "123,456", "es-ES" ) |
"es-ES" — тег для испанского языка в Испании. В Испании десятичным разделителем является запятая. | 123.456 (Decimal) |
Значение( "12.34%" ) Десятичная( "12.34%" ) |
Знак процента в конце строки указывает, что это значение в процентах. | 0.1234 (Decimal) |
Значение( "$ 12.34" ) Десятичная( "$ 12.34" ) |
Символ валюты для текущего языка не учитывается. | 12.34 (Decimal) |
Значение( "24e3" ) Десятичная( "24e3" ) |
Экспоненциальное представление числа 24 x 103. | 24000 (Decimal) |
Значение (истина) Десятичная дробь (истина) |
Преобразует логическое значение в число: 0 для false и 1 для true | 1 Decimal |
Акции в свободном обращении
Функция Число с плавающей точкой будет иметь очень близкие к вышеуказанным результаты. Поскольку 123.456 не может быть точно представлено в Число с плавающей точкой, результатом является очень близкое приближение (123.456000000000003069544618484E2), а вычисления ошибок округления могут привести к неожиданному результату. Вместо этого результирующий тип будет Число с плавающей точкой.
Ситуация расходится, если используются большие или меньшие числа.
Формула | Description | Result |
---|---|---|
Плавающий( 1e100 ) | Поскольку числовой литерал 1e100 выходит за пределы диапазона Десятичное число, это приводит к ошибке еще до вызова функция Число с плавающей точкой. |
ошибка (переполнение) |
Десятичная дробь (1e100) | Та же проблема, что и с функцией Число с плавающей точкой. | ошибка (переполнение) |
Плавающий( "1e100" ) | Число в текстовой строке находится в диапазоне чисел Число с плавающей точкой. | 1e100 Float |
Десятичная( "1e100" ) | Число в текстовой строке находится вне диапазона чисел Десятичное число. | ошибка (переполнение) |
Плавающий( "10000000000.0000000001" ) | Число в текстовой строке находится в диапазоне чисел Число с плавающей точкой. Однако это число требует большей точности, чем может обеспечить Число с плавающей точкой, и будет усечено. | 1 (Float) |
Десятичная( "10000000000.0000000001" ) | Число в текстовой строке находится имеет диапазон и точность чисел Десятичное число. | 10000000000.0000000001 (Decimal) |