- formatMoney(정수) · formatLineMoney(소수 1 · 끝 0 없음) · formatPrice(단가 소수 3 · 200 미만 유효숫자 넷) · formatNumber(수량 · 율 유효숫자 넷) - M01 Logic_Money · Logic_Edit 는 다시 내보내기만(부르는 쪽 그대로) - 파이썬 짝 master_fmt.py(절반 올림 · 은행가 반올림 어긋남 해소) · master_text 갈아 끼움은 받기 뒤 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
22 lines
1.0 KiB
JavaScript
22 lines
1.0 KiB
JavaScript
/* 원화 꼴 한 벌(`common_util_money.ts`) 거울 헬퍼 — 트랜스파일해 Node 로 돌림 ·
|
|
* stdin = [값 글 | null ...] (숫자 글은 Number 로) · stdout = {함수: [글 ...]} */
|
|
const fs = require("fs");
|
|
const path = require("path");
|
|
const ts = require(path.join(__dirname, "..", "..", "config", "node_modules", "typescript"));
|
|
|
|
const file = path.join(__dirname, "..", "..", "common_util", "common_util_money.ts");
|
|
const js = ts.transpileModule(fs.readFileSync(file, "utf8"), {
|
|
compilerOptions: { module: ts.ModuleKind.CommonJS, target: ts.ScriptTarget.ES2020 },
|
|
}).outputText;
|
|
const box = { exports: {} };
|
|
new Function("exports", "module", "require", js)(box.exports, box, require);
|
|
|
|
const cases = JSON.parse(fs.readFileSync(0, "utf8")).map((c) =>
|
|
c !== null && c.num ? Number(c.num) : c === null ? null : c.text,
|
|
);
|
|
const out = {};
|
|
for (const name of ["formatNumber", "formatMoney", "formatLineMoney", "formatPrice"]) {
|
|
out[name] = cases.map((c) => box.exports[name](c));
|
|
}
|
|
process.stdout.write(JSON.stringify(out));
|