Skip to content

fix(repair): 修复 OrderService.calculateDiscountPrice 的 BigDecimal 精度丢失问题 - #26

Open
deibudei wants to merge 1 commit into
demo/fault/precision-lossfrom
repair/pr-precision-20260506-143228
Open

fix(repair): 修复 OrderService.calculateDiscountPrice 的 BigDecimal 精度丢失问题#26
deibudei wants to merge 1 commit into
demo/fault/precision-lossfrom
repair/pr-precision-20260506-143228

Conversation

@deibudei

@deibudei deibudei commented May 6, 2026

Copy link
Copy Markdown
Owner

Auto Repair

Session: pr-precision-20260506-143228

Plan

RepairPlan[repairTarget=修复 OrderService.calculateDiscountPrice 的 BigDecimal 精度丢失问题, rootCauseHypothesis=calculateDiscountPrice 使用 double 中间计算导致 IEEE 754 浮点精度丢失,199.96 无法精确表示。, suspectedFiles=[target-service/src/main/java/com/example/targetservice/service/OrderService.java, target-service/src/test/java/com/example/targetservice/service/OrderServicePrecisionTest.java], steps=[将 discountRate 转为 BigDecimal,全程使用 BigDecimal 算术替代 double 运算。, 使用 total.multiply(discountRateBD).multiply(BigDecimal.valueOf(quantity)) 计算并返回。, 运行 target-service 测试验证精度与边界校验。], testCommand=mvn -pl target-service test]

Review

Patch is limited to target-service and tests pass.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant