2b20f4b2e2
修复了两个关键问题: 1. 订单金额精度错误 - 原因:总是强制将金额舍入到 4 位小数,导致精度丢失 - 问题案例:25.09488 被错误地舍入为 25.0948 - 修复:只在小数位数超过 roundConfig.amount 时才进行舍入,采用与 clob-client 一致的条件舍入逻辑 2. 价格超出范围错误 - 原因:价格 0.999 舍入到 2 位小数后变成 1.00,违反了 price < 1 的限制 - 修复:在舍入后验证价格范围,超出时自动调整到最接近的有效值 (0.01-0.99) 主要变更: - 对价格进行 roundNormal 舍入(参考 clob-client) - 实现条件舍入逻辑:先 roundUp(amount + 4),必要时再 roundDown(amount) - 添加价格范围验证 (MIN_PRICE=0.01, MAX_PRICE=0.99) - 添加 decimalPlaces() 辅助函数 - 修改 roundNormal/roundDown/roundUp 函数,只有必要时才舍入 参考:clob-client/src/order-builder/helpers.ts 的 getOrderRawAmounts 函数