Manuale PHP
Indietro |  | Avanti

# money_format

(PHP 4 >= 4.3.0, PHP 5)

money_format -- Formattazione di un numero come stringa monetaria

## Descrizione

string money_format ( string format, float number )

money_format() restituisce una versione formattata di number. Questa funzione è un'interfaccia alla funzione C strfmon(), con la differenza che questa funzione converte un solo numero alla volta.

> Nota: La funzione money_format() esiste solo se il sistema suppporta strfmon. Ad esempio, Windows non lo supporta perciò la funzione money_format() non è definita su Windows.

LA specifica del formato consiste nella seguente sequenza:

- un carattere %

- un flag opzionale flags

- la lunghezza del campo, opzionale

- la precisione a sinistra, opzionale

- la precisione a destra, opzionale

- un carattere di conversione, obbligatorio

Flag. Si possono utilizzare uno o più dei seguenti flag:

=f

  Il carattere = seguito da un singolo carattere (singolo byte) f è utilizzato come carattere di riempimento numerico. Il carattere di default è lo spazio.

^

  Disabilita l'utilizzo del raggruppamento dei caratetrei (come definito nelle impostazioni locali).

+ oppure (

  Specifica lo stile di formattazione per i numeri positivi e negativi. Se si utilizza +, sarà utilizzato l'equivalente valore locale per + e -. Se si utilizza (, i valori negativi saranno racchiusi tra parentesi. Se non si da specifica, il default è +.

!

  Sopprime il simbolo della moneta nella stringa di output.

-

  Se presente, rende tutti i campi giustificati a sinistra (riempiti a a destra), il default prevede i campi allineati a destra (riempiti a sinistra).

Dimensioni del campo.

w

  Una stringa numerica che specifica la lunghezza minima del campo. Il campo sarà allineato a destra a meno di non avere impostato il flag -. Il valore di default è 0 (zero).

Precisione a sinistra.

#n

  Sono attesi un numero massimo di (n) numeri a sinistra del carattere decimale (es. il punto decimale). Solitamente si utilizza per mantenere allineato l'output nella medesima colonna, utilizzando il carattere di riempimento, se il numero delle cifre è inferiore a n. Se il numero delle cifre è superiore a n, questa specifica viene ignorata.

  Se il raggruppamento delle cifre non è soppresso tramite ^, saranno inseriti i separatori di raggruppamento prima dei caratteri di riempimento (se presenti). I separatori di gruppo non saranno applicati ai caratteri di riempimento, anche se il carattere di riempimento è un numero.

  Per garantire l'allineamento, ogni carattere che, nella stringa formattata, appare prima o dopo il numero, tipo il simbolo della moneta o il segno, viene riempito con gli spazi necessari affinché la corrispondente stringa risultante da un valore positivo o negativo abbia la medesima lunghezza.

Precisione di destra .

.p

  Un punto seguito da un numero di cifre (p) dopo il carattere decimale. Se il valore di p è 0 (zero), il carattere decimale e le cifre alla sua destra saranno omesse. Se non vi è indicazione della precisione a destra, il default sarà preso della impostazioni locali. L'importo sarà arrontondato alle cifre decimali richieste prima di essere formattato.

Caratteri di conversione .

i

  Il numero sarà formattato in base alle impostazioni internazionali locali (es. le impostazioni locali USA: USD 1,234.56).

n

  Il numero sarà formattato in base alle locali impostazioni nazionali di moneta (es. per de_DE: DM1.234,56).

%

  Restituisce il carattere %.

> Nota: La categoria `LC_MONETARY` delle impostazioni locali influisce sul comportamento di questa funzione. Utilizzare setlocale() per impostare il default appropriato prima di utilizzare questa funzione.

> I caratteri prima e dopo la stringa di formattazione saranno restituiti immutati.

Esempio 1. Esempio di uso di money_format()

Per illustrare il funzionamento della funzione utilizzeremo diversi formati di impostazioni locali.

`<?php
$number = 1234.56;
// stampa nel formato internazionale per l'impostazione en_US
setlocale(LC_MONETARY, 'en_US');
echo money_format('%i', $number) . "\n";
// USD 1,234.56
// Fromato italiano con 2 cifre decimali`
setlocale(LC_MONETARY, 'it_IT');
echo money_format('%.2n', $number) . "\n";
// L. 1.234,56
// Numeri negativi
$number = -1234.5672;
// Formato nazionale US, Utilizzo di () per i numeri negativi
// e 10 cifre di precisione a sinistra
setlocale(LC_MONETARY, 'en_US');
echo money_format('%(#10n', $number) . "\n";
// ($ 1,234.57)
// Simile al precente con 2 cifre di precisione a destra
// e '*' come carattere di riempimento
echo money_format('%=*(#10.2n', $number) . "\n";
// ($********1,234.57)
// Giustificazione a sinistra, con 14 posizioni di lunghezza, 8 cifre di
// precisione a sinistra, 2 di precisione a destra, senza carattere di raggruppamento
// e utilizzando l'impostazione locale de_DE.
setlocale(LC_MONETARY, 'de_DE');
echo money_format('%=*^-14#8.2i', 1234.56) . "\n";
// DEM 1234,56****
// Qualche carattere prima e dopo la specifica di formattazione
setlocale(LC_MONETARY, 'en_GB');
$fmt = 'The final value is %i (after a 10%% discount)';
echo money_format($fmt, 1234.56) . "\n";
// The final value is GBP 1,234.56 (after a 10% discount)
?>`

Vedere anche setlocale(), number_format(),sprintf(), printf() e sscanf().

Indietro | Partenza | Avanti
metaphone | Risali | nl_langinfo