001/*
002 *    Copyright 2024-2025, Warm-Flow (290631660@qq.com).
003 *
004 *    Licensed under the Apache License, Version 2.0 (the "License");
005 *    you may not use this file except in compliance with the License.
006 *    You may obtain a copy of the License at
007 *
008 *       https://www.apache.org/licenses/LICENSE-2.0
009 *
010 *    Unless required by applicable law or agreed to in writing, software
011 *    distributed under the License is distributed on an "AS IS" BASIS,
012 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 *    See the License for the specific language governing permissions and
014 *    limitations under the License.
015 */
016package org.dromara.warm.flow.core.utils;
017
018import java.math.BigDecimal;
019
020/**
021 * 数字工具类
022 *
023 * @author warm
024 */
025public class MathUtil {
026
027    private MathUtil() {
028    }
029
030    /**
031     * 判断是否为数字
032     *
033     * @param str 字符串
034     */
035    public static boolean isNumeric(String str) {
036        if (str == null || str.isEmpty()) { // 检查字符串是否为空
037            return false;
038        }
039        try {
040            Double.parseDouble(str.trim()); // 使用Double.parseDouble()方法尝试将字符串转换为double
041            return true; // 转换成功,字符串是数字
042        } catch (NumberFormatException e) {
043            return false; // 转换失败,字符串不是数字
044        }
045    }
046
047    /**
048     * 判断数字大小
049     *
050     * @param n1 字符串
051     * @param n2 字符串
052     */
053    public static int determineSize(String n1, String n2) {
054        BigDecimal a = new BigDecimal(n1);
055        BigDecimal b = new BigDecimal(n2);
056        return a.compareTo(b);
057    }
058
059}