我正在使用FileHelpers来创建固定长度的文件。在我的模型中,我有一个需要以0000.00格式输出的double。无论如何我可以用FileHelpers本身指定它,还是我需要将模型更改为字符串并在创建模型时执行.ToString(my_format)?
答案 0 :(得分:4)
您是否尝试过使用FileHelpers库中的FieldConverter
?
也许是这样的。这是未经测试的,但它可能会让您走上正轨:
using System;
using FileHelpers;
internal class MyDoubleConverter : ConverterBase
{
public override string FieldToString(object from)
{
return ((double) from).ToString("0000.00");
}
}
[FixedLengthRecord]
public class MyRecordType
{
[FieldFixedLength(7)]
[FieldConverter(typeof(MyDoubleConverter))]
public double MyDouble;
}
或者这可能有用,甚至更简单:
[FixedLengthRecord]
public class MyRecordType
{
[FieldFixedLength(7)]
[FieldConverter(ConverterKind.Double, "0000.00")]
public double MyDouble;
}
但我认为这会对阅读和写作强制执行0000.00
,我不知道这是否适用于你的场景。