package com.huimv.eartag.utils;

import org.springframework.stereotype.Component;

import java.text.DecimalFormat;
import java.text.NumberFormat;

/**
 * @Project : huimv.shiwan
 * @Package : com.huimv.biosafety.uface.controller
 * @Description : TODO
 * @Version : 1.0
 * @Author : ZhuoNing
 * @Create : 2020-12-25
 **/
@Component
public class MathUtil2 {

    public static double A = 0.00335396319311466;
    public static double B = 0.000256376549039663;
    public static double C = 0.00000248933580817244;
    public static double D = 0.0000000753805242068686;
    public static double E = -0.0000000204758173596178;

    //保留一位小数
    public static double changeDouble(Double dou) {
        NumberFormat nf = new DecimalFormat("0.0 ");
        dou = Double.parseDouble(nf.format(dou));
        return dou;
    }

    public static double ln(int rv) {
        int R_REF = 10000;
        double ln = Math.log((double) rv / R_REF);
        //保留一位小数
        return changeDouble(1 / (A + B * ln + C * Math.pow(ln, 2) + D * Math.pow(ln, 3) + E * Math.pow(ln, 4)) - 273.15) + 0.001;
    }

    public String formatBit(float num, int bit) {
        // 创建一个数值格式化对象
        NumberFormat numberFormat = NumberFormat.getInstance();
        // 设置精确到小数点后2位
        numberFormat.setMaximumFractionDigits(bit);
        return numberFormat.format(num);
    }

    public String formatBit(float num) {
        return String.valueOf(num);
    }

    //计算比率
    public String countRate(float num, int bit) {
        // 创建一个数值格式化对象
        NumberFormat numberFormat = NumberFormat.getInstance();
        // 设置精确到小数点后2位
        numberFormat.setMaximumFractionDigits(bit);
        return numberFormat.format(num * 100);//所占百分比
    }

    //计算占比
    public String countRate(float num, float total,int bit) {
        // 创建一个数值格式化对象
        NumberFormat numberFormat = NumberFormat.getInstance();
        // 设置精确到小数点后2位
        numberFormat.setMaximumFractionDigits(bit);
        //所占百分比
        return numberFormat.format((float)  num/ (float)total* 100);
    }

    //格式化
    public String format(float num, int bit) {
        // 创建一个数值格式化对象
        NumberFormat numberFormat = NumberFormat.getInstance();
        // 设置精确到小数点后2位
        numberFormat.setMaximumFractionDigits(bit);
        return numberFormat.format(num * 100);//所占百分比
    }

    //格式化
    public String format(float num, float total,int bit) {
        // 创建一个数值格式化对象
        NumberFormat numberFormat = NumberFormat.getInstance();
        // 设置精确到小数点后2位
        numberFormat.setMaximumFractionDigits(bit);
        //所占百分比
        return numberFormat.format((float)  num/ (float)total* 100);
    }

}
