我有以下功能
public object Convert(object value)
{
string retVal = string.Empty;
int oneMillion = 1000000;
retVal = ((double)value / oneMillion).ToString("###,###,###.###");
return retVal;
}
我正在调用
var result = Convert(107284403940);
错误:“指定演员无效。”
如何修复...
注意:〜对象值可以是double,decimal,float,integer(32和64)..任何
是否可以在运行时进行类型转换?
答案 0 :(得分:75)
使用Convert.ToDouble(value)
而不是(double)value
。需要object
并支持您要求的所有类型! :)
此外,您的方法始终在上面的代码中返回string
;我建议让方法表明,并给它一个更明显的名称(public string FormatLargeNumber(object value)
)
答案 1 :(得分:4)
如果您期望double, decimal, float, integer
为什么不使用容纳所有十进制的那个(对于您正在查看的大多数数字,128位就足够了)。
而不是(double)value
使用decimal.Parse(value.ToString())
或Convert.ToDecimal(value)