NumberFormatter::setPattern

numfmt_set_pattern

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

NumberFormatter::setPattern -- numfmt_set_pattern设置格式化程序模式

描述

面向对象风格

public NumberFormatter::setPattern(string $pattern): bool

过程式风格

numfmt_set_pattern(NumberFormatter $formatter, string $pattern): bool

设置格式化程序使用的模式。不能用于基于规则的格式化程序。

参数

formatter

NumberFormatter 对象。

pattern

» ICU DecimalFormat 文档 中描述的语法中的模式。

返回值

成功时返回 true,失败时返回 false

示例

示例 #1 numfmt_set_pattern() 示例

<?php
$fmt
= numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo
"Pattern: ".numfmt_get_pattern($fmt)."\n";
echo
numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_pattern($fmt, "#0.# kg");
echo
"Pattern: ".numfmt_get_pattern($fmt)."\n";
echo
numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

示例 #2 面向对象示例

<?php
$fmt
= new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo
"Pattern: ".$fmt->getPattern()."\n";
echo
$fmt->format(1234567.891234567890000)."\n";
$fmt->setPattern("#0.# kg");
echo
"Pattern: ".$fmt->getPattern()."\n";
echo
$fmt->format(1234567.891234567890000)."\n";
?>

以上示例将输出

Pattern: #,##0.###
1.234.567,891
Pattern: #0.# kg
1234567,9 kg

参见

添加注释

用户贡献的注释 2 个注释

Crash
3 年前
如果您正在寻找模式语法,他们的文档在这里:http://unicode.org/reports/tr35/tr35-numbers.html#Number_Format_Patterns
匿名
5 年前
setPattern 似乎只影响 format 方法的行为,而不影响 NumberFormatter 对象的 parse 方法。

$pattern = '#,##0';
$frmtr = NumberFormatter::create('en-US', NumberFormatter::DECIMAL);
$frmtr->setPattern($pattern);
echo $frmtr->parse('12.345');

// 返回 12
To Top