封装antd中InputNumber可限制保留几位小数的组件

发布时间:2024年01月05日

组件实现

你可以使用 formatter parser 属性来设置最多保留x位小数的功能

import { InputNumber } from 'antd';

const InputNumberToFixed = ({ toFixedNum, ...props }: any) => {
    const formatValue = (value) => {
        if (!value) return value;

        // 将输入的值转换为数字类型
        const floatValue = parseFloat(value);

        // 保留x位小数
        const roundedValue = floatValue.toFixed(toFixedNum);
        return roundedValue;
    };

    const parseValue = (value) => {
        // 将输入的值转换为数字类型
        const floatValue = parseFloat(value);

        // 如果转换失败或超过x位小数,则返回原始值
        if (isNaN(floatValue) || floatValue.toString().split('.')[1]?.length > toFixedNum) {
            return value;
        }

        return floatValue;
    };

    return (
        <InputNumber
            {...props}
            formatter={formatValue}
            parser={parseValue}
        />
    );
};

export default InputNumberToFixed;

使用

在这里插入图片描述

文章来源:https://blog.csdn.net/weixin_44157964/article/details/135413499
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。