Hướng dẫn money_format not working in php - money_format không hoạt động trong php

Đầu tiên bạn phải biết phiên bản PHP đang sử dụng

Nếu bạn không chắc cách kiểm tra, hãy tạo tệp có tên Info.phpinfo.php

Chèn mã =>

(PHP 4 >= 4.3.0, PHP 5)
$number = 1234.56;

// let's print the international format for the en_US locale
setlocale(LC_MONETARY, 'en_US');
echo money_format('%i', $number) . "\n";
// USD 1,234.56

// Italian national format with 2 decimals`
setlocale(LC_MONETARY, 'it_IT');
echo money_format('%.2n', $number) . "\n";
// Eu 1.234,56

Lưu ý: hàm Money_format () chỉ được xác định nếu hệ thống có khả năng strfmon. Ví dụ: Windows không, vì vậy Money_Format () không được xác định trong Windows.

Bạn có thể sử dụng một giải pháp thay thế (PHP 5> = 5.3.0, PECL INTL> = 1.0.0)

Ví dụ #1 numfmt_format_currency () Ví dụ

$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
$fmt = numfmt_create( 'ru_RU', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";

Ví dụ #2 oo ví dụ

$fmt = new NumberFormatter( 'de_DE', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
$fmt = new NumberFormatter( 'ru_RU', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";

Ví dụ trên sẽ xuất ra:

1.234.567,89 €
1.234.567,89 RUR
1 234 567,89€
1 234 567,89р.

Ví dụ được lấy từ php.net

Nếu không thể thay thế, giải pháp là tạo ra một phương pháp cho nhu cầu của bạn.

Tôi hy vọng đã giúp bạn

SWAPNET ¶

Kaigillmann tại googlemail dot com ¶Formats a number as a currency string

PHPDeveloperBalaji tại Gmail Dot Com ¶

11 năm trước

Sự mô tả

Money_Format (Chuỗi $format, Float $number): Chuỗi(string $format, float $number): string

Thông số

format

Thông số kỹ thuật định dạng bao gồm chuỗi sau:

  • một nhân vật %

  • Cờ tùy chọn

  • Chiều rộng trường tùy chọn

  • Độ chính xác bên trái tùy chọn

  • Tùy chọn đúng chính xác

  • một ký tự chuyển đổi bắt buộc

Cờ

Một hoặc nhiều cờ tùy chọn bên dưới có thể được sử dụng:

=ff

Ký tự = theo sau là một ký tự (byte đơn) f được sử dụng làm ký tự điền số. Nhân vật điền mặc định là không gian.f to be used as the numeric fill character. The default fill character is space.

$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
$fmt = numfmt_create( 'ru_RU', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
1

Vô hiệu hóa việc sử dụng các ký tự nhóm (như được xác định bởi ngôn ngữ hiện tại).

$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
$fmt = numfmt_create( 'ru_RU', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
2 hoặc
$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
$fmt = numfmt_create( 'ru_RU', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
3

Chỉ định kiểu định dạng cho các số tích cực và âm. Nếu

$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
$fmt = numfmt_create( 'ru_RU', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
2 được sử dụng, tương đương của địa phương cho
$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
$fmt = numfmt_create( 'ru_RU', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
2 và
$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
$fmt = numfmt_create( 'ru_RU', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
6 sẽ được sử dụng. Nếu
$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
$fmt = numfmt_create( 'ru_RU', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
3 được sử dụng, số lượng âm được đặt trong ngoặc đơn. Nếu không có thông số kỹ thuật nào được đưa ra, mặc định là
$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
$fmt = numfmt_create( 'ru_RU', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
2.

$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
$fmt = numfmt_create( 'ru_RU', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
9

Tháo ký hiệu tiền tệ từ chuỗi đầu ra.

$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
$fmt = numfmt_create( 'ru_RU', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
6

Nếu có mặt, nó sẽ làm cho tất cả các trường được thay đổi bên trái (được đệm bên phải), trái ngược với mặc định dành cho các trường được chuyển đổi bên phải (được đệm bên trái).

Chiều rộng trường
w

Một chuỗi chữ số thập phân chỉ định một chiều rộng trường tối thiểu. Trường sẽ được công bằng đúng trừ khi cờ

$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
$fmt = numfmt_create( 'ru_RU', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
6 được sử dụng. Giá trị mặc định là 0 (không).

Độ chính xác còn lại
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
$fmt = new NumberFormatter( 'ru_RU', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
2nn

Số lượng chữ số tối đa (n) dự kiến ​​ở bên trái của ký tự thập phân (ví dụ: điểm thập phân). Nó thường được sử dụng để giữ đầu ra được định dạng được căn chỉnh trong cùng một cột, sử dụng ký tự điền nếu số chữ số nhỏ hơn n. Nếu số chữ số thực tế lớn hơn N, thì đặc điểm kỹ thuật này bị bỏ qua.n) expected to the left of the decimal character (e.g. the decimal point). It is used usually to keep formatted output aligned in the same columns, using the fill character if the number of digits is less than n. If the number of actual digits is bigger than n, then this specification is ignored.

Nếu nhóm không bị triệt tiêu bằng cờ

$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
$fmt = numfmt_create( 'ru_RU', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
1, các bộ phân cách nhóm sẽ được chèn trước khi các ký tự điền (nếu có) được thêm vào. Nhóm phân tách sẽ không được áp dụng để điền các ký tự, ngay cả khi ký tự điền là một chữ số.

Để đảm bảo căn chỉnh, bất kỳ ký tự nào cũng xuất hiện trước hoặc sau số trong đầu ra được định dạng như tiền tệ hoặc ký hiệu ký hiệu được đệm khi cần thiết với các ký tự không gian để làm cho các định dạng dương và âm của chúng có độ dài bằng nhau.

Độ chính xác đúng
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
$fmt = new NumberFormatter( 'ru_RU', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
4Pp

Một khoảng thời gian theo sau là số chữ số (P) sau ký tự thập phân. Nếu giá trị của P là 0 (không), ký tự thập phân và các chữ số bên phải của nó sẽ bị bỏ qua. Nếu không có độ chính xác đúng được bao gồm, mặc định sẽ được chỉ định bởi địa phương hiện tại đang được sử dụng. Số lượng được định dạng được làm tròn đến số chữ số được chỉ định trước khi định dạng.p) after the decimal character. If the value of p is 0 (zero), the decimal character and the digits to its right will be omitted. If no right precision is included, the default will dictated by the current locale in use. The amount being formatted is rounded to the specified number of digits prior to formatting.

Ký tự chuyển đổi
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
$fmt = new NumberFormatter( 'ru_RU', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
5

Con số được định dạng theo định dạng tiền tệ quốc tế của địa phương (ví dụ: đối với địa phương Hoa Kỳ: 1.234,56 USD).

$fmt = new NumberFormatter( 'de_DE', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
$fmt = new NumberFormatter( 'ru_RU', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
6

Số được định dạng theo định dạng tiền tệ quốc gia của địa phương (ví dụ: đối với địa phương DE_DE: EU1.234,56).

________số 8

Trả về ký tự %.

$fmt = new NumberFormatter( 'de_DE', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
$fmt = new NumberFormatter( 'ru_RU', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
9

Số lượng được định dạng.

Trả về giá trị

Trả về chuỗi được định dạng. Các ký tự trước và sau khi chuỗi định dạng sẽ được trả về không thay đổi. Không phải là

$fmt = new NumberFormatter( 'de_DE', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
$fmt = new NumberFormatter( 'ru_RU', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
9 gây ra trở lại
1.234.567,89 €
1.234.567,89 RUR
1 234 567,89€
1 234 567,89р.
1 và phát ra
1.234.567,89 €
1.234.567,89 RUR
1 234 567,89€
1 234 567,89р.
2.
1.234.567,89 €
1.234.567,89 RUR
1 234 567,89€
1 234 567,89р.
1
and emitting
1.234.567,89 €
1.234.567,89 RUR
1 234 567,89€
1 234 567,89р.
2
.

Ví dụ

Ví dụ #1 Money_Format () Ví dụmoney_format() Example

Chúng tôi sẽ sử dụng các địa phương và thông số kỹ thuật định dạng khác nhau để minh họa việc sử dụng chức năng này.

1.234.567,89 €
1.234.567,89 RUR
1 234 567,89€
1 234 567,89р.
3

$number

1.234.567,89 €
1.234.567,89 RUR
1 234 567,89€
1 234 567,89р.
5

Ghi chú

Ghi chú::

Hàm money_format () chỉ được xác định nếu hệ thống có khả năng strfmon. Ví dụ: Windows không, vì vậy Money_Format () không được xác định trong Windows.money_format() is only defined if the system has strfmon capabilities. For example, Windows does not, so money_format() is undefined in Windows.

Ghi chú::

Hàm money_format () chỉ được xác định nếu hệ thống có khả năng strfmon. Ví dụ: Windows không, vì vậy Money_Format () không được xác định trong Windows.

1.234.567,89 €
1.234.567,89 RUR
1 234 567,89€
1 234 567,89р.
6 category of the locale settings, affects the behavior of this function. Use setlocale() to set to the appropriate default locale before using this function.

Danh mục 1.234.567,89 € 1.234.567,89 RUR 1 234 567,89€ 1 234 567,89р. 6 của cài đặt địa phương, ảnh hưởng đến hành vi của hàm này. Sử dụng setLocale () để đặt thành locale mặc định thích hợp trước khi sử dụng chức năng này.

  • Xem thêm
  • setlocale () - Đặt thông tin địa phương
  • sscanf () - đầu vào phân tích cú pháp từ một chuỗi theo định dạng
  • Sprintf () - Trả về chuỗi được định dạng
  • printf () - đầu ra chuỗi được định dạng

number_format () - Định dạng một số với hàng ngàn nhóm

Tim ¶

1.234.567,89 €
1.234.567,89 RUR
1 234 567,89€
1 234 567,89р.
7

1.234.567,89 €
1.234.567,89 RUR
1 234 567,89€
1 234 567,89р.
8

1.234.567,89 €
1.234.567,89 RUR
1 234 567,89€
1 234 567,89р.
9

0

1

7 năm trước

Todoventas tại Xarxa-Cat Dot Net

2

3

4

5

1

8 năm trước

Rafael M. Salvioni ¶

7

8

9

$format0

$format1

$format2

$format3

13 năm trước

Jeremy ¶

$format4

$format5

1

14 năm trước

JSB17NO tại spamcornell dot edu ¶

$format7

9 năm trước

Felix Duterloo ¶

$format8

$format9

$number0

$number1

$number2

$number3

$number4

$number5

1

6 năm trước

~ B ¶

$number7

$number8

$number9

1

10 năm trước

andrey.dobrozhanskiy [-a-t-] gmail com ¶

format1

format2

1

12 năm trước

16 năm trước

format4

format5

1

SWAPNET ¶

14 năm trước

format7

format8

format9

%0

Kaigillmann tại googlemail dot com ¶

8 năm trước

%1

%2

1

PHPDeveloperBalaji tại Gmail Dot Com ¶

11 năm trước

%4

%5

%6

%7

%8

%9

Scot từ ezyauctionz.co.nz ¶

15 năm trước

=0

=1

=2

=3

=4

=5

sainthyoga2003 tại gmail dot com ¶

2 năm trước

=6

chỉ là người nào đó ¶

5 năm trước

=7

=8

=9

$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
$fmt = numfmt_create( 'ru_RU', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
00

Làm thế nào để hiển thị số tiền trong PHP?

Hàm php money_format ()..
Định dạng EN_US quốc tế: $ số = 1234,56;....
Định dạng quốc tế (Đức) với 2 số thập phân: $ số = 1234,56;....
Số âm, định dạng quốc gia Hoa Kỳ với () để biểu thị số âm và 2 chữ số có độ chính xác đúng và "*" là một ký tự điền: $ số = -1234.5672 ;.

Làm thế nào để thêm ký hiệu tiền tệ trong PHP?

Nếu bạn đặt locale bằng hàm này setLocale ("lc_all", "es_ar");Bạn có thể sử dụng localeconv () ['currency_symbol'] hoặc localeconv () ['int_curr_symbol'] để lấy ký hiệu tiền tệ địa phương và biến thể quốc tế của ký hiệu tiền tệ.Lưu câu trả lời này.localeconv()['currency_symbol'] or localeconv()['int_curr_symbol'] to get the locale currency symbol and the international variation of the currency symbol. Save this answer.