PHPackages                             cable8mm/n-format - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Localization &amp; i18n](/categories/localization)
4. /
5. cable8mm/n-format

ActiveLibrary[Localization &amp; i18n](/categories/localization)

cable8mm/n-format
=================

PHP NumberFormatter extension library for Korean and Japanese number formatting with ordinal support, currency formatting, and smart price rounding

v1.3.1(1mo ago)21.0kMITPHPPHP ^8.0CI passing

Since Jun 15Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/cable8mm/n-format)[ Packagist](https://packagist.org/packages/cable8mm/n-format)[ RSS](/packages/cable8mm-n-format/feed)WikiDiscussions main Synced today

READMEChangelog (8)Dependencies (4)Versions (9)Used By (0)

N-Format
========

[](#n-format)

[![code-style](https://github.com/cable8mm/n-format/actions/workflows/code-style.yml/badge.svg)](https://github.com/cable8mm/n-format/actions/workflows/code-style.yml)[![run-tests](https://github.com/cable8mm/n-format/actions/workflows/run-tests.yml/badge.svg)](https://github.com/cable8mm/n-format/actions/workflows/run-tests.yml)[![Packagist Version](https://camo.githubusercontent.com/3e656d7b494b620834cd1edfced069f337eca338b6229ced5ab7c474e3c097aa/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6361626c65386d6d2f6e2d666f726d6174)](https://camo.githubusercontent.com/3e656d7b494b620834cd1edfced069f337eca338b6229ced5ab7c474e3c097aa/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6361626c65386d6d2f6e2d666f726d6174)[![Packagist Downloads](https://camo.githubusercontent.com/51ddd7e0e8875932cde07fb7a0a3cfa874857c25c3fea89754ae3bb5aacbd4bb/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6361626c65386d6d2f6e2d666f726d6174)](https://camo.githubusercontent.com/51ddd7e0e8875932cde07fb7a0a3cfa874857c25c3fea89754ae3bb5aacbd4bb/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6361626c65386d6d2f6e2d666f726d6174)[![Packagist Dependency Version](https://camo.githubusercontent.com/1185fd1f7ff1e2be5d15e162a90386eff7b04511cef9ee5c086177f2fed335ad/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646570656e64656e63792d762f6361626c65386d6d2f6e2d666f726d61742f706870)](https://camo.githubusercontent.com/1185fd1f7ff1e2be5d15e162a90386eff7b04511cef9ee5c086177f2fed335ad/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646570656e64656e63792d762f6361626c65386d6d2f6e2d666f726d61742f706870)[![Packagist Stars](https://camo.githubusercontent.com/28226a9e1f81a10f4d46c6b8288bfa6e3c4dd727e36ee1bc85c827ae9e8f9e12/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f73746172732f6361626c65386d6d2f6e2d666f726d6174)](https://camo.githubusercontent.com/28226a9e1f81a10f4d46c6b8288bfa6e3c4dd727e36ee1bc85c827ae9e8f9e12/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f73746172732f6361626c65386d6d2f6e2d666f726d6174)[![Packagist License](https://camo.githubusercontent.com/eaea2dc4c5abc85fe232a365aecf44fedb00287481c76999305892af85945689/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6361626c65386d6d2f6e2d666f726d6174)](https://camo.githubusercontent.com/eaea2dc4c5abc85fe232a365aecf44fedb00287481c76999305892af85945689/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6361626c65386d6d2f6e2d666f726d6174)

왜 이 패키지를 만들었나?
--------------

[](#왜-이-패키지를-만들었나)

PHP에는 NumberFormatter 클래스와 함수가 내장되어 있지만, 한국이나 일본과 같은 일부 국가에서는 사용할 수 없을 수 있습니다. 따라서 우리는 Carbon이 DateTime을 확장하는 것과 유사하게 NumberFormatter를 확장하는 작은 래퍼 라이브러리를 제공합니다. 또한 몇 가지 추가 기능을 제공합니다.

Laravel을 사용해 보셨다면 `NFormatHelper` 헬퍼 클래스를 사용할 수 있습니다. [Laravel Helper 사용](#laravel-helper) 섹션을 참조하세요.

API 문서를 웹에서 제공하고 있습니다. 자세한 내용은 를 방문해주세요 ❤️

설치
--

[](#설치)

```
composer require cable8mm/n-format
```

사용법
---

[](#사용법)

### 기본 사용

[](#기본-사용)

```
print NFormat::currency(358762);
// 기본 로케일 = 'ko_KR' 통화 = 'KRW'
//=> ₩358,762
```

```
print NFormat::spellOut(5);
// 기본 로케일 = 'ko_KR' 통화 = 'KRW'
//=> 오
```

```
NFormat::$locale = 'ja_JP';

print NFormat::spellOut(5);
//=> 五
```

```
print NFormat::decimal(12346);
//=> 12,346

print NFormat::percent(12346);
//=> 1,234,600%

print NFormat::rawPercent(12346);
//=> 12,346%
```

**참고:**

- `percent()`는 100을 곱합니다 (12346 → 1,234,600%)
- `rawPercent()`는 100으로 나눕니다 (12346 → 12,346%)

### 서수 및 통화 철자

[](#서수-및-통화-철자)

한국어 및 일본어 서수 표현을 위한 특별한 메서드들:

```
print NFormat::ordinalSpellOut(10);
//=> 열번째

print NFormat::currencySpellOut(12346);
//=> 12,346 원
```

> **참고:** 이 메서드들은 현재 드라이버 파일이 있는 `ko_KR` 로케일만 지원합니다. 드라이버 파일을 추가하여 다른 로케일 지원을 확장할 수 있습니다.

### 가격 계산

[](#가격-계산)

고객에게 표시할 가격을 계산하기 위해 `price()`와 `smartPrice()`를 사용할 수 있습니다.

- `price()`: 지정된 자릿수로 단순 반올림
- `smartPrice()`: 숫자 자릿수에 따른 지능형 반올림 (쇼핑몰에 유용)

```
print NFormat::price(12346, -2);
//=> 12300

print NFormat::price(12346.23, 1);
//=> 12346.20

print NFormat::smartPrice(12346);
//=> 12300

print NFormat::smartPrice(123467);
//=> 123000

print NFormat::smartPrice(1234678);
//=> 1230000

print NFormat::smartPrice(12346432);
//=> 12350000

print NFormat::smartPrice(3212343232);
//=> 3212340000
```

**스마트 가격 반올림 규칙 (KRW):**

- 1-2자리: 반올림 없음
- 3자리: 10의 자리 반올림
- 4-5자리: 100의 자리 반올림
- 6자리: 1000의 자리 반올림
- 7자리 이상: 10000의 자리 반올림

### Laravel Helper

[](#laravel-helper)

Laravel Blade에서 별도의 설치 없이 사용할 수 있습니다:

```
{{ NFormatHelper::currency(12346) }}
```

API 참조
------

[](#api-참조)

### 사용 가능한 메서드

[](#사용-가능한-메서드)

메서드반환타입설명예제`spellOut(int)`string숫자를 단어로 변환`spellOut(5)` → `오``ordinalSpellOut(int)`string서수 표현 (번째)`ordinalSpellOut(10)` → `열번째``currency(int|float|null, string)`string통화 포맷`currency(358762)` → `₩358,762``currencySpellOut(int|float)`string통화 + 단어`currencySpellOut(12346)` → `12,346 원``percent(int)`string퍼센트 (×100)`percent(12346)` → `1,234,600%``rawPercent(int)`string퍼센트 (÷100)`rawPercent(12346)` → `12,346%``decimal(int|float|null, string)`string천단위 구분자`decimal(12346)` → `12,346``price(int|float, ?int)`string|false반올림`price(12346, -2)` → `12300``smartPrice(int|float)`string|false스마트 반올림`smartPrice(12346)` → `12300`### Static Properties

[](#static-properties)

속성기본값설명`$locale``'ko_KR'`기본 로케일 설정`$currency``'KRW'`기본 통화 코드 (ISO 4217)지원 로케일
------

[](#지원-로케일)

현재 지원되는 로케일 및 통화:

- **ko\_KR** (한국어 - 대한민국)

    - 통화: KRW (한국 원화)
    - 기능: 서수 지원, 통화 철자, 스마트 가격 반올림
- **ja\_JP** (일본어 - 일본)

    - 통화: JPY (일본 엔화)
    - 기능: 기본 spell out 지원

> **참고:** `src/OrdinalDriver/` 및 `src/CurrencyDriver/` 디렉토리에 드라이버 파일을 생성하여 다른 로케일 지원을 추가할 수 있습니다.

기여하기
----

[](#기여하기)

기여를 환영합니다! 다음 단계를 따라주세요:

1. 저장소를 포크합니다
2. 기능 브랜치를 생성합니다 (`git checkout -b feature/amazing-feature`)
3. 변경사항을 커밋합니다 (`git commit -m 'Add some amazing feature'`)
4. 브랜치에 푸시합니다 (`git push origin feature/amazing-feature`)
5. Pull Request를 엽니다

### 개발 환경 설정

[](#개발-환경-설정)

```
# 의존성 설치
composer install

# 테스트 실행
composer test

# 코드 스타일 검사
composer inspect

# 코드 스타일 자동 수정
composer lint
```

포맷팅
---

[](#포맷팅)

```
composer lint
# 모든 파일을 PSR-12에 맞게 수정합니다.

composer inspect
# 모든 파일이 PSR-12을 준수하는지 검사합니다.
```

테스트
---

[](#테스트)

```
composer test
```

라이선스
----

[](#라이선스)

N-Format은 [MIT 라이선스](https://opensource.org/licenses/MIT) 하에 오픈소스로 제공됩니다.

###  Health Score

48

—

FairBetter than 94% of packages

Maintenance90

Actively maintained with recent releases

Popularity17

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~315 days

Recently: every ~269 days

Total

8

Last Release

47d ago

PHP version history (4 changes)v1.0PHP &gt;=7.2

v1.1PHP ^7.2.5

v1.2.1PHP ^7.2.5|^8.0

v1.2.2PHP ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/c910c874a0263a18f9f976273054cd45faa3ffbcba7891992f4ab52d0656dd93?d=identicon)[Sam Lee](/maintainers/Sam%20Lee)

---

Top Contributors

[![cable8mm](https://avatars.githubusercontent.com/u/2672043?v=4)](https://github.com/cable8mm "cable8mm (36 commits)")

---

Tags

currencyextensionformatterlocalenumbernumber-formatterphpphpcurrencyi18nformatlocalejapanesenumberordinalkorean

###  Code Quality

TestsPHPUnit

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/cable8mm-n-format/health.svg)

```
[![Health](https://phpackages.com/badges/cable8mm-n-format/health.svg)](https://phpackages.com/packages/cable8mm-n-format)
```

###  Alternatives

[moment/moment

Parse, validate, manipulate, and display dates in JavaScript.

47.9k2.1M42](/packages/moment-moment)[fightbulc/moment

Parse, validate, manipulate, and display dates in PHP w/ i18n support. Inspired by moment.js

9673.5M13](/packages/fightbulc-moment)[icanboogie/cldr

Localize applications using Unicode's CLDR

48253.1k3](/packages/icanboogie-cldr)[skillshare/formatphp

Internationalize PHP apps. This library provides an API to format dates, numbers, and strings, including pluralization and handling translations.

7933.0k](/packages/skillshare-formatphp)[jrmajor/fluent

Fluent localization system for PHP

2918.4k7](/packages/jrmajor-fluent)[tigrov/yii2-country

Country data for Yii2 using Intl extension and more.

151.1k](/packages/tigrov-yii2-country)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
