update page now

NumberFormatter::setAttribute

numfmt_set_attribute

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::setAttribute -- numfmt_set_attributeУстанавливает значение для атрибута форматирования чисел

Описание

Объектно-ориентированный стиль

public NumberFormatter::setAttribute(int $attribute, int|float $value): bool

Процедурный стиль

numfmt_set_attribute(NumberFormatter $formatter, int $attribute, int|float $value): bool

Функция устанавливает значение для атрибута форматирования чисел. Пример атрибута числового формата — количество разрядов в целой части числа, которое выведет средство форматирования.

Список параметров

formatter

Объект NumberFormatter.

attribute

Спецификатор атрибута — константа атрибута форматирования чисел.

value

Значение для атрибута.

Возвращаемые значения

Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка.

Примеры

Пример #1 Пример форматирования чисел функцией numfmt_set_attribute()

<?php

$fmt
= numfmt_create('de_DE', NumberFormatter::DECIMAL);
echo
"Количество разрядов в дробной части числа: " . numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS) . "\n";
echo
numfmt_format($fmt, 1234567.891234567890000) . "\n";

numfmt_set_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo
"Количество разрядов в дробной части числа: " . numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS) . "\n";
echo
numfmt_format($fmt, 1234567.891234567890000) . "\n";

Пример #2 Пример форматирования чисел в объектно-ориентированном стиле

<?php

$fmt
= new NumberFormatter('de_DE', NumberFormatter::DECIMAL);
echo
"Количество разрядов в дробной части числа: " . $fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS) . "\n";
echo
$fmt->format(1234567.891234567890000) . "\n";

$fmt->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo
"Количество разрядов в дробной части числа: " . $fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS) . "\n";
echo
$fmt->format(1234567.891234567890000) . "\n";

Результат выполнения приведённого примера:

Количество разрядов в дробной части числа: 3
1.234.567,891
Количество разрядов в дробной части числа: 2
1.234.567,89

Пример #3 Пример усечения значений атрибутом NumberFormatter::ROUNDING_MODE

По умолчанию объект NumberFormatter округляет значения. В режиме NumberFormatter::ROUND_DOWN для атрибута NumberFormatter::ROUNDING_MODE функция усекает значение до заданного количества дробных разрядов без округления.

<?php

$fmt
= new NumberFormatter('en_US', NumberFormatter::DECIMAL);
$fmt->setAttribute(NumberFormatter::FRACTION_DIGITS, 2);

echo
"Округление в режиме по умолчанию:\n";
echo
$fmt->format(3.789), "\n"; // 3.79 — результат округления вверх
echo $fmt->format(3.781), "\n"; // 3.78 — результат округления вниз

$fmt->setAttribute(NumberFormatter::ROUNDING_MODE, NumberFormatter::ROUND_DOWN);

echo
"\nУсечение в режиме ROUND_DOWN:\n";
echo
$fmt->format(3.789), "\n"; // 3.78 — результат усечения
echo $fmt->format(3.781), "\n"; // 3.78 — результат усечения

Результат выполнения приведённого примера:

Округление в режиме по умолчанию:
3.79
3.78

Усечение в режиме ROUND_DOWN:
3.78
3.78

Смотрите также

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top