You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用tiny csv helper解析csv时如何将float自动转换为int32

Tiny CSV Helper float 转 int32 映射实现方案

完全可以实现该需求,你可以通过自定义类型转换器的方式处理,逻辑和你当前用的DateTimeConverter一致。

实现思路

  • 自定义实现ITypeConverter接口的转换器,内部先把123456.00这类字符串解析为浮点类型,再安全转换为int32即可,还可以根据自己的业务需求添加空值处理、范围校验等容错逻辑。
  • 属性映射时直接传入自定义转换器实例即可,用法和DateTimeConverter完全相同。

完整代码示例

1. 自定义转换器实现

public class FloatToInt32Converter : ITypeConverter
{
    public object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData)
    {
        // 空值处理逻辑可根据业务需求调整
        if (string.IsNullOrWhiteSpace(text)) 
            return default(int);
        
        if (double.TryParse(text, out var doubleValue))
        {
            // 可选添加int32范围校验,避免溢出
            if (doubleValue >= int.MinValue && doubleValue <= int.MaxValue)
            {
                return Convert.ToInt32(doubleValue);
            }
            throw new InvalidCastException($"数值 {doubleValue} 超出int32可表示范围");
        }
        throw new InvalidCastException($"无法将字符串 {text} 转换为有效int32数值");
    }

    public string ConvertToString(object value, IWriterRow row, MemberMapData memberMapData)
    {
        // 写入CSV时的转换逻辑,不需要可直接返回字符串
        return value?.ToString() ?? string.Empty;
    }
}

2. 映射用法

// 假设csv第1列对应实体的Count属性,类型为int
MapProperty(1, x => x.Count, new FloatToInt32Converter());

内容的提问来源于stack exchange,提问作者Fardin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 02:24:02