package xn.hxp.utils

import java.math.BigDecimal


object BigDecimalUtils {

    //称重值100  净含量    val netContent =  modelA.chemicalDensity * modelA.specNum  // 净含量 = 密度*规格
    fun errorRate(num1: BigDecimal, num2: BigDecimal): BigDecimal? {
        if (num1 == null || num2 == null) {
            return null
        }
        // 将 BigDecimal 转换为 double 类型并计算误差率
        val rate = Math.abs(
            (num1.toDouble() - num2.toDouble()) / (maxOf(
                num1.toDouble(),
                num2.toDouble()
            )) * 100
        )
//        return String.format("%.2f", rate)
        return BigDecimal(String.format("%.2f", rate))
    }


    // 比较两个字符串的大小，返回比较结果
    fun compareStrings(str1: String, str2: String): Int {
        return str1.compareTo(str2)
    }

    // 检查两个字符串是否相等
    fun isEqual(str1: String, str2: String): Boolean {
        return str1 == str2
    }


    fun extractParameterValue(url: String, parameterName: String): String? {
        val parameterStartIndex = url.indexOf("$parameterName=")
        if (parameterStartIndex == -1) {
            return null
        }

        val parameterEndIndex = url.indexOf("&", parameterStartIndex)
        val valueEndIndex = if (parameterEndIndex != -1) parameterEndIndex else url.length
        return url.substring(parameterStartIndex + parameterName.length + 1, valueEndIndex)
            .replace(" ", "")
    }

    //    val result = StringUtils.compareStrings(a, b)
    //    if (result < 0) {
    //        println("$a 小于 $b")
    //    } else if (result > 0) {
    //        println("$a 大于 $b")
    //    } else {
    //        println("$a 等于 $b")
    //    }
    //
    //    val equal = StringUtils.isEqual(a, b)
    //    if (equal) {
    //        println("$a 和 $b 相等")
    //    } else {
    //        println("$a 和 $b 不相等")
    //    }


}