import logging
from typing import Any, Optional

logger = logging.getLogger(__name__)


class NumUtils:

    @classmethod
    def cast_to_float(cls, value: Any) -> Optional[float]:
        """
            尝试将传入的参数转换为float
        :param value: 值
        :return: float
        """
        try:
            if value is None:
                return None
            return float(value)
        except (ValueError, TypeError):
            logger.warning(f"无法将输入值 '{value}' 转换为float")
            return None

    @classmethod
    def cast_to_int(cls, value: Any) -> Optional[int]:
        """
            尝试将传入的参数转换为float
        :param value: 值
        :return: float
        """
        try:
            if value is None:
                return None
            return int(value)
        except (ValueError, TypeError):
            logger.warning(f"无法将输入值 '{value}' 转换为int")
            return None