NumberFormatter sınıfı

(No version information available, might only be in Git)

Giriş

Uygulamalar sayılar üzerinde işlem yapmak ve bunları saklamak için yerelden bağımsız bir ikil gösterim kullanır. Sayılar gösterilirken veya basılırken bunlar yerele özgü dizgelere dönüştürülür. Örneğin, 12345.67 sayısı ABD için "12,345.67", Fransa için "12 345,67" ve Almanya ve Türkiye için "12.345,67" biçimindedir.

NumberFormatter (SayıBiçemleyici) sınıfınca sağlanmış yöntemleri çağırmak suretiyle sayılar, paralar ve yüzdeler öntanımlı yerele veya belirtilen yerele uygun olarak biçemlenebilir. NumberFormatter sınıfı yerele duyarlı olduğundan her yerel için yeni bir sayı biçemleyici oluşturmak gerekir. NumberFormatter sınıfının yöntemleri kayan noktalı sayılar gibi ilkel sayı türlerini biçemler ve bunları yerele özgü dizgeler olarak çıktılar.

Paraları, uygun bir sayı ve para birimi simgesiyle biçemleyip bir dizge olarak döndürmek için bir biçemleyici oluşturmak amacıyla para biçemleme türü kullanılabilir. Şüphesiz, NumberFormatter sınıfı paralar arasındaki kıymet oranlarını bilmez ve belirtilen paranın değerini belirtilen yerele göre dönüştürmez. Yani para birimi ne olursa olsun para biriminin yanında hep belirtilen miktar görünür. 9988776.65 değeri için sonuçlar şöyle olabilir:

  • Fransa'da 9 988 776,65 €
  • Türkiye'de 9.988.776,65 YTL veya 9.988.776 TL
  • ABD'de $9,988,776.65

Yüzdeleri biçemlemek için, yüzde biçemleme türü kullanılarak yerele özgü bir biçemleyici oluşturulur. Bu biçemleyici ile örneğin, 0.75 gibi bir ondalık sayı %75 olarak gösterilir.

Sayıların hecelenmesi gibi daha karmaşık biçemlemeler için kurala dayalı sayı biçemleyici kullanılır.

Sınıf Sözdizimi

class NumberFormatter {
/* Sabitler */
public const int PATTERN_DECIMAL;
public const int DECIMAL;
public const int CURRENCY;
public const int PERCENT;
public const int SCIENTIFIC;
public const int SPELLOUT;
public const int ORDINAL;
public const int DURATION;
public const int PATTERN_RULEBASED;
public const int IGNORE;
public const int CURRENCY_ACCOUNTING;
public const int DEFAULT_STYLE;
public const int ROUND_CEILING;
public const int ROUND_FLOOR;
public const int ROUND_DOWN;
public const int ROUND_UP;
public const int ROUND_HALFEVEN;
public const int ROUND_HALFDOWN;
public const int ROUND_HALFUP;
public const int PAD_BEFORE_PREFIX;
public const int PAD_AFTER_PREFIX;
public const int PAD_BEFORE_SUFFIX;
public const int PAD_AFTER_SUFFIX;
public const int PARSE_INT_ONLY;
public const int GROUPING_USED;
public const int MAX_INTEGER_DIGITS;
public const int MIN_INTEGER_DIGITS;
public const int INTEGER_DIGITS;
public const int MAX_FRACTION_DIGITS;
public const int MIN_FRACTION_DIGITS;
public const int FRACTION_DIGITS;
public const int MULTIPLIER;
public const int GROUPING_SIZE;
public const int ROUNDING_MODE;
public const int ROUNDING_INCREMENT;
public const int FORMAT_WIDTH;
public const int PADDING_POSITION;
public const int LENIENT_PARSE;
public const int POSITIVE_PREFIX;
public const int POSITIVE_SUFFIX;
public const int NEGATIVE_PREFIX;
public const int NEGATIVE_SUFFIX;
public const int PADDING_CHARACTER;
public const int CURRENCY_CODE;
public const int DEFAULT_RULESET;
public const int PUBLIC_RULESETS;
public const int PERCENT_SYMBOL;
public const int ZERO_DIGIT_SYMBOL;
public const int DIGIT_SYMBOL;
public const int MINUS_SIGN_SYMBOL;
public const int PLUS_SIGN_SYMBOL;
public const int CURRENCY_SYMBOL;
public const int EXPONENTIAL_SYMBOL;
public const int PERMILL_SYMBOL;
public const int PAD_ESCAPE_SYMBOL;
public const int INFINITY_SYMBOL;
public const int NAN_SYMBOL;
public const int TYPE_DEFAULT;
public const int TYPE_INT32;
public const int TYPE_INT64;
public const int TYPE_DOUBLE;
public const int TYPE_CURRENCY;
/* Yöntemler */
public __construct(string $yerel, int $tür, ?string $kalıp = null)
public static create(string $yerel, int $tür, ?string $kalıp = null): ?NumberFormatter
public formatCurrency(float $miktar, string $para_birimi): string|false
public format(int|float $sayı, int $tür = NumberFormatter::TYPE_DEFAULT): string|false
public getAttribute(int $öznitelik): int|float|false
public getErrorCode(): int
public getLocale(int $tür = ULOC_ACTUAL_LOCALE): string|false
public getSymbol(int $simge): string|false
public getTextAttribute(int $öznitelik): string|false
public parseCurrency(string $dizge, string &$para_simgesi, int &$konum = null): float|false
public parse(string $dizge, int $tür = NumberFormatter::TYPE_DOUBLE, int &$konum = null): int|float|false
public setAttribute(int $öznitelik, int|float $değer): bool
public setPattern(string $kalıp): bool
public setSymbol(int $simge, string $değer): bool
public setTextAttribute(int $öznitelik, string $değer): bool
}

Öntanımlı Sabitler

Bu biçemler numfmt_create() işlevi tarafından biçemleyici türünü tanımlamak için kullanılırlar.

NumberFormatter::PATTERN_DECIMAL
Şablona göre tanımlı ondalık biçem
NumberFormatter::DECIMAL
Ondalık biçem
NumberFormatter::CURRENCY
Para birimi biçemi
NumberFormatter::PERCENT
Yüzde biçemi
NumberFormatter::SCIENTIFIC
Bilimsel sayı gösterim biçemi
NumberFormatter::SPELLOUT
Kurala dayalı heceleme biçemi
NumberFormatter::ORDINAL
Kurala dayalı sıra gösterim biçemi
NumberFormatter::DURATION
Kurala dayalı süre gösterim biçemi
NumberFormatter::PATTERN_RULEBASED
Şablona göre tanımlı kurala dayalı biçem
NumberFormatter::CURRENCY_ACCOUNTING
Muhasebe için para birimi biçemi, örneğin, negatif para birimi miktarı için -$3.00 yerine ($3.00) gibi. PHP 7.4.1 itibariyle ve ICU 53 ile kullanılabilir.
NumberFormatter::DEFAULT_STYLE
Yerele özgü öntanımlı biçem
NumberFormatter::IGNORE
PATTERN_DECIMAL için takma ad

Bu sabitler sayıların nasıl çözümlenip biçemleneceğini tanımlar. numfmt_format() ve numfmt_parse() işlevlerinin bağımsız değişkenleri olarak kullanılırlar.

NumberFormatter::TYPE_DEFAULT
Türü değişken türünden türet
NumberFormatter::TYPE_INT32
32 bitlik tamsayı olarak çözümle/biçemle
NumberFormatter::TYPE_INT64
64 bitlik tamsayı olarak çözümle/biçemle
NumberFormatter::TYPE_DOUBLE
Bir kayan noktalı sayı olarak çözümle/biçemle
NumberFormatter::TYPE_CURRENCY
Para birimi olarak çözümle/biçemle. PHP 8.3.0'dan itibaren kullanımdan kaldırılmıştır

numfmt_get_attribute() ve numfmt_set_attribute() işlevi tarafından kullanılan sayı biçemleme öznitelikleri:

NumberFormatter::PARSE_INT_ONLY
Sadece tamsayıları çözümle.
NumberFormatter::GROUPING_USED
Gruplama ayracı kullan.
NumberFormatter::DECIMAL_ALWAYS_SHOWN
Ondalık noktayı daima göster.
NumberFormatter::MAX_INTEGER_DIGITS
Azami tamsayı hane sayısı.
NumberFormatter::MIN_INTEGER_DIGITS
Asgari tamsayı hane sayısı.
NumberFormatter::INTEGER_DIGITS
Tamsayı hane sayısı.
NumberFormatter::MAX_FRACTION_DIGITS
Ondalık kısım azami hane sayısı
NumberFormatter::MIN_FRACTION_DIGITS
Ondalık kısım asgari hane sayısı.
NumberFormatter::FRACTION_DIGITS
Ondalık kısım hane sayısı
NumberFormatter::MULTIPLIER
Çarpan.
NumberFormatter::GROUPING_SIZE
Grup genişliği.
NumberFormatter::ROUNDING_MODE
Yuvarlama kipi.
NumberFormatter::ROUNDING_INCREMENT
Yuvarlama artışı.
NumberFormatter::FORMAT_WIDTH
Çıktı biçeminde dolgu genişliği.
NumberFormatter::PADDING_POSITION
Dolgunun konumu. Olası değerler için dolgu konumlama sabitlerine bakınız.
NumberFormatter::SECONDARY_GROUPING_SIZE
İkincil gruplama genişliği.
NumberFormatter::SIGNIFICANT_DIGITS_USED
Kıymetli haneleri kullan.
NumberFormatter::MIN_SIGNIFICANT_DIGITS
Asgari kıymetli hane sayısı.
NumberFormatter::MAX_SIGNIFICANT_DIGITS
Azami kıymetli hane sayısı.
NumberFormatter::LENIENT_PARSE
Kurala dayalı biçemlerde kullanılan esnek çözümleme kipi.

numfmt_get_text_attribute() ve numfmt_set_text_attribute() işlevlerinde kullanılan sayı biçemi metin öznitelikleri:

NumberFormatter::POSITIVE_PREFIX
Pozitif öneki.
NumberFormatter::POSITIVE_SUFFIX
Pozitif soneki.
NumberFormatter::NEGATIVE_PREFIX
Negatif öneki.
NumberFormatter::NEGATIVE_SUFFIX
Negatif soneki.
NumberFormatter::PADDING_CHARACTER
Dolgu karakteri.
NumberFormatter::CURRENCY_CODE
ISO para birimi.
NumberFormatter::DEFAULT_RULESET
Öntanımlı kural kümesi. Sadece kurala dayalı biçemleyicilerle kullanılabilir.
NumberFormatter::PUBLIC_RULESETS
Genel kural kümeleri. Sadece kurala dayalı biçemleyicilerle kullanılabilir. Salt okunur bir özniteliktir. Genel kural kümeleri, kural kümesi isimleri noktalı virgüllerle (;) ayrılarak tek bir dizge halinde gönderilir.

numfmt_get_attribute() ve numfmt_set_attribute() işlevleri tarafından NumberFormatter::ROUNDING_MODE özniteliği ile kullanılan yuvarlama kipi değerleri.

NumberFormatter::ROUND_CEILING
Pozitif sonsuza yuvarlama kipi.
NumberFormatter::ROUND_DOWN
Sıfıra yuvarlama kipi.
NumberFormatter::ROUND_FLOOR
Negatif sonsuza yuvarlama kipi.
NumberFormatter::ROUND_HALFDOWN
İki komşuya da eşit uzaklıkta olmamak koşuluyla aşağı yuvarlama kipi.
NumberFormatter::ROUND_HALFEVEN
İki komşuya da eşit uzaklıkta olmamak koşuluyla çift sayılı komşuya yuvarlama kipi.
NumberFormatter::ROUND_HALFUP
İki komşuya da eşit uzaklıkta olmamak koşuluyla yukarı yuvarlama kipi.
NumberFormatter::ROUND_UP
Sıfırdan öteye yuvarlama kipi.

numfmt_get_attribute() ve numfmt_set_attribute() işlevleri tarafından NumberFormatter::PADDING_POSITION özniteliği ile birlikte kullanılan dolgu konumu değerleri:

NumberFormatter::PAD_AFTER_PREFIX
Dolgu karakterlerini önekten sonra yerleştir.
NumberFormatter::PAD_AFTER_SUFFIX
Dolgu karakterlerini sonekten sonra yerleştir.
NumberFormatter::PAD_BEFORE_PREFIX
Dolgu karakterlerini önekten önce yerleştir.
NumberFormatter::PAD_BEFORE_SUFFIX
Dolgu karakterlerini sonekten önce yerleştir.

İçindekiler