주가 표시형식 수정

This commit is contained in:
Macbook
2026-06-06 00:56:45 +09:00
parent 1d4e606f77
commit 94d3f92bb9
18 changed files with 156 additions and 57 deletions
+14 -6
View File
@@ -7,7 +7,7 @@ import { getKoreanName } from '../utils/marketNameCache';
import { MarketSearchPanel } from './MarketSearchPanel';
import type { TradeOrderFillRequest } from '../types';
import { placePaperOrder } from '../utils/backendApi';
import { coerceFiniteNumber } from '../utils/safeFormat';
import { coerceFiniteNumber, formatUpbitKrwPrice, upbitKrwTickSize } from '../utils/safeFormat';
export type OrderKind = 'limit' | 'market' | 'stop_limit';
@@ -39,7 +39,7 @@ export interface TradeOrderPanelProps {
export function fmtKrw(n: number): string {
if (!Number.isFinite(n)) return '0';
return Math.round(n).toLocaleString('ko-KR');
return formatUpbitKrwPrice(n, '0');
}
function parseNum(s: string): number {
@@ -47,11 +47,19 @@ function parseNum(s: string): number {
return Number.isFinite(v) ? v : 0;
}
/** KRW 가격: 숫자만 허용, 천 단위 쉼표 표시 */
/** KRW 가격: 숫자·소수점(필요 시)만 허용, 업비트 규칙으로 표시 */
function sanitizePriceInput(raw: string): string {
const digits = raw.replace(/\D/g, '');
if (!digits) return '';
return Number(digits).toLocaleString('ko-KR');
const cleaned = raw.replace(/[^\d.]/g, '');
if (!cleaned) return '';
const n = Number(cleaned);
if (!Number.isFinite(n)) return '';
return formatUpbitKrwPrice(n, cleaned);
}
/** 현재 가격에 맞는 호가 단위만큼 증감 */
export function stepPriceByTick(price: number, direction: 1 | -1): number {
const tick = upbitKrwTickSize(price);
return Math.round((price + direction * tick) / tick) * tick;
}
/** 주문 수량: 숫자와 소수점(1개)만 허용 */