Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 如何使用Dart计算此数学?_Math_Dart - Fatal编程技术网

Math 如何使用Dart计算此数学?

Math 如何使用Dart计算此数学?,math,dart,Math,Dart,总方向=1540m 第一公里=10美元 第二公里=8美元 其他(正常)公里=5美元 我如何计算这个逻辑?用户应为第一公里支付10美元,然后为第二公里支付8美元,其他为5美元。 型号。startUpCharge是阵列,存储10美元和8美元 //[totalDistance]以米为单位 双重计算许可证(RideModel模型,双重总距离){ 双倍总价=0; 双标准价格=0; totalPrice=model.normalCharge* ((总距离/1000)-型号、费用、长度); 对于(var i=

总方向=1540m

第一公里=10美元

第二公里=8美元

其他(正常)公里=5美元

我如何计算这个逻辑?用户应为第一公里支付10美元,然后为第二公里支付8美元,其他为5美元。
型号。startUpCharge
是阵列,存储10美元和8美元

//[totalDistance]以米为单位
双重计算许可证(RideModel模型,双重总距离){
双倍总价=0;
双标准价格=0;
totalPrice=model.normalCharge*
((总距离/1000)-型号、费用、长度);
对于(var i=0;i
1540m逻辑=1000m支付$10,5400M支付$8

@CreativeCreatorMyBeno回答

答案应该是50,但结果是5

问题是:如果我加1米,价格应该是50。第一公里有初始充电。不变

import 'dart:math' as math;

class RideModel{
  final List startUpCharge;
  final double normalCharge;

  RideModel({this.startUpCharge,this.normalCharge});
}
main() {
 calculateTripPrice(RideModel(startUpCharge: [50,51],normalCharge: 10),1);
}

double calculateTripPrice(RideModel model, double totalDistance) {
  var remainingDistance = totalDistance, price = .0;

  // Kilometers with special charge
  for (var i = 0; i < model.startUpCharge.length; i++) {
    price += model.startUpCharge[i] / 1000 * math.min(1000, remainingDistance);
    remainingDistance -= math.min(1000, remainingDistance);
  }

  // Remaining kilometers
  price += model.normalCharge / 1000 * remainingDistance;
  remainingDistance = 0;
  print(price);

  return price;
}
导入'dart:math'作为数学;
类RideModel{
最终费用清单;
最终双倍正常充电;
RideModel({this.startUpCharge,this.normalCharge});
}
main(){
计算许可证(RideModel(启动费用:[50,51],正常费用:10),1);
}
双重计算许可证(RideModel模型,双重总距离){
var剩余距离=总距离,价格=.0;
//特殊收费公里数
对于(var i=0;i
您可以简单地迭代添加价格,然后从距离中减去。基于此,只有在仍有剩余距离且每次使用正确的系数时,才会将其添加到价格中

double CalculateTroprice(RideModel模型,双总距离){
var剩余距离=总距离,价格=.0;
//特殊收费公里数
对于(var i=0;i

记得
将'dart:math'导入为math

计算错误。我把你的结果加在我的问题上了。如果你有时间,请帮助我