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

Flutter中如何根据用户输入的百分比实现价格增减计算?

解决方案

核心计算逻辑

不管是价格增减,本质都是把用户输入的百分比数值转换成小数后,和1做加减得到计算因子:

  • 价格增加N%:计算因子 = 1 + (N / 100)
  • 价格减少N%:计算因子 = 1 - (N / 100)

举个例子:

  • 输入N=1时,增加因子是1+0.01=1.01,减少因子是1-0.01=0.99
  • 输入N=1000时,增加因子是1+10=11.0,减少因子是1-10=-9.0(这里要注意:如果减少百分比超过100%,计算出的价格会是负数,实际业务中可能需要限制输入范围或做兜底处理,比如价格最低为0)

Flutter 代码实现示例

假设你有输入百分比的文本框,以及选择增减类型的控件,以下是核心计算代码:

// 基础价格
double basePrice = 1.45;
// 用户输入的百分比字符串(实际从TextField获取)
String inputPercentText = "10";
// 转换为数值,处理无效输入
double inputPercent = double.tryParse(inputPercentText) ?? 0.0;

// 计算增加后的价格
double getIncreasedPrice() {
  double factor = 1 + (inputPercent / 100);
  return basePrice * factor;
}

// 计算减少后的价格(加入兜底,避免价格为负)
double getDecreasedPrice() {
  double factor = 1 - (inputPercent / 100);
  return basePrice * (factor > 0 ? factor : 0);
}

// 调用示例
void main() {
  print("增加10%后的价格:${getIncreasedPrice()}"); // 输出1.595
  print("减少10%后的价格:${getDecreasedPrice()}"); // 输出1.305
}

额外注意点

  • 输入校验:可以给TextField添加输入格式器,限制只能输入数字和小数点,避免无效输入导致计算错误
  • 业务边界:如果不允许价格为负,在减少计算时必须判断因子是否大于0,否则强制价格为0;如果业务允许超过100%的增减,直接按正常逻辑计算即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 10:06:17