package com.lyd.wx.uitls;
import java.math.BigDecimal;
import java.util.Scanner;
public class Price {
private static final int DEF_DIV_SCALE = 2;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double superValue = 300;
int fijo = 30;
double progress = 299;
System.out.println("请输入成本价格:");
double cost = sc.nextInt();
System.out.println("请输入你想售卖的价格:");
double sellingPrice = sc.nextInt();
double coupon = 0.0;
double intervalMax = sellingPrice + superValue;
double na = Math.floor(intervalMax / superValue);
int ya = new Double(na).intValue();
double nb = Math.ceil(intervalMax / superValue);
int yb = new Double(nb).intValue();
for (int i = 1; i < 20; i++) {
double full = fijo * (i - 1);
double priceMin = full * 10;
System.out.println("当前产品定价: "+ sellingPrice);
if (full != 0){
double fullMax = div(sellingPrice,priceMin,2) * full;
System.out.println("当前满减区间["+priceMin+","+add(priceMin,progress)+"]"+"当前满减优惠最大金额: "+ fullMax);
coupon = sub(sub(sellingPrice,fullMax),cost);
System.out.println("当前优惠券最大设置值: "+ coupon);
System.out.println();
}else {
System.out.println("当前满减区间["+priceMin+","+add(priceMin,progress)+"]"+"当前满减优惠最大金额: "+ full);
coupon = sub(sub(sellingPrice,full),cost);
System.out.println("当前优惠券最大设置值: "+ coupon);
System.out.println();
}
}
}
public static Double mul(Double d1,Double d2){
BigDecimal b1 = new BigDecimal(d1.toString());
BigDecimal b2 = new BigDecimal(d2.toString());
return b1.multiply(b2).doubleValue();
}
public static Double div(Double d1,Double d2){
BigDecimal b1 = new BigDecimal(d1.toString());
BigDecimal b2 = new BigDecimal(d2.toString());
return b1.divide(b2,DEF_DIV_SCALE,BigDecimal.ROUND_HALF_UP).doubleValue();
}
public static Double div(Double d1,Double d2,int scale){
if(scale<0){
throw new IllegalArgumentException(
"The scale must be a positive integer or zero");
}
BigDecimal b1 = new BigDecimal(d1.toString());
BigDecimal b2 = new BigDecimal(d2.toString());
return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
public static double sub(double v1,double v2){
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.subtract(b2).doubleValue();
}
public static double add(double v1,double v2){
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.add(b2).doubleValue();
}
}