我有 class InjectionPoint{
@Autowred
private Consumer [] consumerList;
}
我希望根据单元格值应用格式更改。我想使用原始的DataGridView
来源进行此操作,但不幸的是构建源需要删除和重定向某些行,以便索引关闭。因此,我尝试使用
DataTable
然而,它从未将该值视为双重值。我已经使用MessageBox验证了输出,并且没有可能通过添加" - "而导致问题的前导或尾随空格。到MessageBox字符串的两侧。对于为什么它总是将值视为不是双倍的,即使对于明显可解析为双精度值的值,我也一无所知。
编辑:我不确定周末发生了什么变化,但是我进来了,修复了一个与此无关的不同错误,现在大胆正在使用.Value而不是.FormattedValue,如下面的gh0st所示。
答案 0 :(得分:0)
double.TryParse()
将以文化相关的方式解析字符串。您当前的文化很可能希望小数点是其他符号,例如逗号或其他符号。
例如,在我的机器上,我可以强制它通过传递不同的文化来解析,例如:
double.TryParse("1.2",
NumberStyles.Float | NumberStyles.AllowThousands,
CultureInfo.GetCultureInfo("fr-FR"),
out dbl); // returns false
如果您正在发生这种情况,那么您要么找到改变当前文化的方法,要么可以通过这种方式进行解析,以确保结果一致:
double.TryParse("1.2",
NumberStyles.Float | NumberStyles.AllowThousands,
CultureInfo.InvariantCulture,
out dbl); // returns true
(*)注意:可以根据需要调整NumberStyles.Float | NumberStyles.AllowThousands
值。我只是在这个例子中将它设置为,因为这是TryParse
方法在使用带有较少参数的重载时使用的默认值。