namespace YLErp.Modules.SwapModule { /// /// FR007 界面手工录入落库精度契约(EQD-6968 测试期间发现): /// FR007 官方发布为百分数下 4 位(1.4150%),前端 ÷100 转 6 位小数(0.014150)传后端; /// 原 Math.Round(,4) 截成 0.0142(丢 0.5bp,1 亿本金 7 天约 96 元)。修复后保留 6 位。 /// bond-sync 自动同步链(BigDecimal 全精度)不经此路径,无影响。 /// [TestClass] public class SwapFlowFr007EntryPrecisionTest { [TestMethod] public void 官方四位百分数定盘_六位小数全精度保留() { // 2026-08-19 官方发布 1.4150% —— 前端 1.4150/100 后的入参 Assert.AreEqual(0.01415, SwapFlowService.RoundFr007Price(1.4150 / 100.0), 1e-9, "1.4150% 落库应保留 0.014150,不得截成 0.0142(丢 0.5bp)"); Assert.AreEqual(0.021137, SwapFlowService.RoundFr007Price(2.1137 / 100.0), 1e-9, "百分数下第3、4位(小数第5、6位)必须保留"); } [TestMethod] public void 常规两位百分数定盘_行为不变() { // 历史常见形态(2.11% 等):修复前后结果一致 Assert.AreEqual(0.0211, SwapFlowService.RoundFr007Price(0.0211), 0d); Assert.AreEqual(0.0142, SwapFlowService.RoundFr007Price(0.0142), 0d); } } }