C# 是否可以不插入要浮动的值?

C# 是否可以不插入要浮动的值?,c#,types,datatable,C#,Types,Datatable,我有一个datatable,它包含多个相同类型的表。到目前为止,大多数列都是string类型,但我将其更改为float。但是,我有一些“空”行作为这些表的分隔符。这些列的值为“”或string.Empty。默认值为0 那么,有没有一种方法可以将“nothing”插入到float类型的单元格中 我试图插入null,但似乎datatable不支持可为null的类型。 Float.parse也不起作用-表示输入字符串的格式不正确 foreach (DataColumn dc in footer.Tab

我有一个datatable,它包含多个相同类型的表。到目前为止,大多数列都是string类型,但我将其更改为float。但是,我有一些“空”行作为这些表的分隔符。这些列的值为“”或string.Empty。默认值为0

那么,有没有一种方法可以将“nothing”插入到float类型的单元格中

我试图插入null,但似乎datatable不支持可为null的类型。 Float.parse也不起作用-表示输入字符串的格式不正确

foreach (DataColumn dc in footer.Table.Columns)
{
    footer[dc] = float.Parse(string.Empty, System.Globalization.CultureInfo.InvariantCulture);
}

谢谢

Float是值类型,因此它不能为null,因此其默认值为0


如果希望为null,则列的数据类型应为
null
也写为
float?
stringnull时,Convert不会引发异常,Parse()会引发异常。
尝试使用double而不是float,因为这样更容易维护代码和使用Convert。如果要在
DataTable
中设置不存在的(
null
)值,则必须使用特殊类
DBNull
的实例

footer[dc] = DBNull.Value;

你可以试试这个
footer[dc]=default(float)
您所说的那些表的分隔符是什么意思?
浮点是一种值类型,它总是有一个值。为什么不使用
Nullable
?我的意思是,一个数据表中插入了两个表,我希望它们之间用空行分隔,这样您就可以看到一个表的结束位置和第二个表的开始位置。和Hassan—当我将default(float)放在那里时,它将放在那里zerosOK,然后您应该插入空行
DataTable.NewRow()
;然后加上它。当我把它设为null或float时?作为数据类型,它表示Datatable不支持可为空的类型。但是谢谢,这个答案很有帮助,很高兴知道它总是需要有一个值:)太棒了,这个有效:)我将发送它进行更多的测试,但似乎这正是我需要的@Asheara it show me错误无法将system.dbnull转换为双精度@Asheara我正在使用entityf,这是很久以前的事了,所以我不能在我的代码上尝试它,但是,还有几个问题可能会对您有所帮助:[将dbnull解析为double](),[无法将dbnull强制转换为System.double](),根据我从中得到的信息,您可能需要将数据设置为nullable datatype(double?),如果你有一个数据表,我想我的问题是那些类型不是supported@Dragon您正在使用不同的技术。您可以在这里提出问题并获得合格的帮助。