Как изменить формулу подсчёта?
Вообщем есть приложение такси и формула подсчёта суммы поездки в которой сумма за 1 километр делиться на 1000 и умножается на общий километраж!
Сама формула находиться в BottomSheetFragmentBookingDriver.java
recycler_view_driver.addOnItemTouchListener(new RecyclerTouchListener(context, recycler_view_driver, new ClickListener() {
@Override
public void onClick(View view, int position) {
DriverPojo driverPojo = albumList_driver.get(position);
layout_driver_detail.setVisibility(View.VISIBLE);
line_divider_detail.setVisibility(View.VISIBLE);
model_vehicule.setText(driverPojo.getModel());
numberplate_vehicule.setText(driverPojo.getNumberplate());
driver_name.setText(driverPojo.getName());
driver_rating.setText(driverPojo.getRate()+"/5");
vehicule_name.setText(driverPojo.getTypeVehicule());
cout_requete.setText(cout+" "+M.getCurrency(context));
passenger.setText(driverPojo.getPassenger());
driver_phone = driverPojo.getPhone();
driver_id = String.valueOf(driverPojo.getId());
// Toast.makeText(activity, ""+driverPojo.getPhoto(), Toast.LENGTH_SHORT).show();
// loading model cover using Glide library
Glide.with(context).load(AppConst.Server_url+"images/app_user/"+ driverPojo.getPhoto())
// .diskCacheStrategy(DiskCacheStrategy.ALL)
.skipMemoryCache(false)
// .centerCrop()
// .asBitmap()
// .error(R.drawable.ic_thumb_placeholder)
.listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
progressBar.setVisibility(View.GONE);
// driver_image.setImageDrawable(getResources().getDrawable(R.drawable.user_profile));
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
progressBar.setVisibility(View.GONE);
return false;
}
})
.into(driver_image);
}
@Override
public void onLongClick(View view, int position) {
DriverPojo driverPojo = albumList_driver.get(position);
}
}));
tabDistance = distance.split(" ");
if(tabDistance[1].equals("m"))
distance_init = tabDistance[0];
else
distance_init = String.valueOf(Float.parseFloat(tabDistance[0])*1000);
cout = String.valueOf(Math.round((Float.parseFloat(price)/1000) * Float.parseFloat(distance_init)));
if(statut_commission.equals("yes") && statut_commission_perc.equals("yes")){
Float cout_fixed = Float.parseFloat(commission);
Float cout_perc = Float.parseFloat(cout) + (Float.parseFloat(cout) * Float.parseFloat(commission_perc));
cout = String.valueOf(cout_fixed + cout_perc);
}else if(statut_commission.equals("yes")){
cout = String.valueOf(Float.parseFloat(cout) + Float.parseFloat(commission));
}else{
cout = String.valueOf(Float.parseFloat(cout) + (Float.parseFloat(cout) * Float.parseFloat(commission_perc)));
}
double i = Float.parseFloat(cout);
double i2 = i/60000;
float cost = (float) Math.round(i2 * 100) / 100;
cost = cost * Float.parseFloat(distance_init);
cout_ride.setText(cost+" "+ M.getCurrency(context));
// distance_ride.setText(distance);
ride_duration.setText(duration);
Сама формула
cout = String.valueOf(Math.round((Float.parseFloat(price)/1000) * Float.parseFloat(distance_init)));
if(statut_commission.equals("yes") && statut_commission_perc.equals("yes")){
Float cout_fixed = Float.parseFloat(commission);
Float cout_perc = Float.parseFloat(cout) + (Float.parseFloat(cout) * Float.parseFloat(commission_perc));
cout = String.valueOf(cout_fixed + cout_perc);
}else if(statut_commission.equals("yes")){
cout = String.valueOf(Float.parseFloat(cout) + Float.parseFloat(commission));
}else{
cout = String.valueOf(Float.parseFloat(cout) + (Float.parseFloat(cout) * Float.parseFloat(commission_perc)));
}
double i = Float.parseFloat(cout);
double i2 = i/60000;
float cost = (float) Math.round(i2 * 100) / 100;
cost = cost * Float.parseFloat(distance_init);
Кроме этого из бд выводиться ещё одно значение pric
Его нужно добавить к итоговому результату cout
При попытке изменить строку
cout = String.valueOf(Math.round((Float.parseFloat(price)/1000) * Float.parseFloat(distance_init)));
на
cout = String.valueOf(Math.round((Float.parseFloat(price)/1000) * Float.parseFloat(distance_init)) + Integer.parseInt(pric));
получаю цену 5949.81 а правильная цена 5891.81