You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

小计(Subtotal)计算逻辑错误排查及输出格式优化请求

问题修复与实现方案

1. 计算逻辑错误修正

你的代码当前执行的是花材价格 + 颜色价格 + 尺寸价格的累加逻辑,但预期需求是**(花材价格 + 颜色价格) × 尺寸价格**,这就是结果错误的核心原因——比如示例中(1.2+1.3)×7.5=18.75,而你的代码计算的是1.2+1.3+7.5=10.00,正好对应错误输出。

修改后的计算逻辑代码:

// 单独计算各部分价格
double flowerPrice = flowerChoice == 1 ? rosePrice :
                     flowerChoice == 2 ? lilyPrice :
                     flowerChoice == 3 ? carnationsPrice :
                     flowerChoice == 4 ? daffodilPrice :
                     flowerChoice == 5 ? gerberaPrice :
                     flowerChoice == 6 ? chrysanthemumPrice :
                     assortedPrice;

double colourPrice = colourChoice == 1 ? whitePrice :
                     colourChoice == 2 ? redPrice :
                     colourChoice == 3 ? pinkPrice :
                     colourChoice == 4 ? yellowPrice :
                     colourChoice == 5 ? bluePrice :
                     mixedPrice;

double sizePrice = sizeChoice == 1 ? smallPrice :
                   sizeChoice == 2 ? mediumPrice : largePrice;

// 按照正确公式计算总金额
double subtotal = (flowerPrice + colourPrice) * sizePrice;

2. 自定义输出格式实现

要输出「所选花材 + 所选颜色 + 所选尺寸 = 总金额」的格式,需要先根据用户选择获取对应的名称文本,再拼接输出:

步骤1:获取各选项的名称文本

// 获取花材名称
String flowerName = flowerChoice == 1 ? "玫瑰" :
                    flowerChoice == 2 ? "百合" :
                    flowerChoice == 3 ? "康乃馨" :
                    flowerChoice == 4 ? "水仙花" :
                    flowerChoice == 5 ? "非洲菊" :
                    flowerChoice == 6 ? "菊花" :
                    "混合花材";

// 获取颜色名称
String colourName = colourChoice == 1 ? "白色" :
                    colourChoice == 2 ? "红色" :
                    colourChoice == 3 ? "粉色" :
                    colourChoice == 4 ? "黄色" :
                    colourChoice == 5 ? "蓝色" :
                    "混合颜色";

// 获取尺寸名称
String sizeName = sizeChoice == 1 ? "小号" :
                  sizeChoice == 2 ? "中号" : "大号";

步骤2:按格式输出

System.out.printf("%s + %s + %s = £%.2f\n", flowerName, colourName, sizeName, subtotal);

完整代码片段

// 花材相关
double flowerPrice = flowerChoice == 1 ? rosePrice :
                     flowerChoice == 2 ? lilyPrice :
                     flowerChoice == 3 ? carnationsPrice :
                     flowerChoice == 4 ? daffodilPrice :
                     flowerChoice == 5 ? gerberaPrice :
                     flowerChoice == 6 ? chrysanthemumPrice :
                     assortedPrice;
String flowerName = flowerChoice == 1 ? "玫瑰" :
                    flowerChoice == 2 ? "百合" :
                    flowerChoice == 3 ? "康乃馨" :
                    flowerChoice == 4 ? "水仙花" :
                    flowerChoice == 5 ? "非洲菊" :
                    flowerChoice == 6 ? "菊花" :
                    "混合花材";

// 颜色相关
double colourPrice = colourChoice == 1 ? whitePrice :
                     colourChoice == 2 ? redPrice :
                     colourChoice == 3 ? pinkPrice :
                     colourChoice == 4 ? yellowPrice :
                     colourChoice == 5 ? bluePrice :
                     mixedPrice;
String colourName = colourChoice == 1 ? "白色" :
                    colourChoice == 2 ? "红色" :
                    colourChoice == 3 ? "粉色" :
                    colourChoice == 4 ? "黄色" :
                    colourChoice == 5 ? "蓝色" :
                    "混合颜色";

// 尺寸相关
double sizePrice = sizeChoice == 1 ? smallPrice :
                   sizeChoice == 2 ? mediumPrice : largePrice;
String sizeName = sizeChoice == 1 ? "小号" :
                  sizeChoice == 2 ? "中号" : "大号";

// 计算与输出
double subtotal = (flowerPrice + colourPrice) * sizePrice;
System.out.printf("%s + %s + %s = £%.2f\n", flowerName, colourName, sizeName, subtotal);

内容的提问来源于stack exchange,提问作者Timski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 18:27:33