如何将object
转换为string
,并在数值上应用数字格式?传递的对象是一个数值。
我试过了
private string FormatValue(string field, object[] values)
{
result = string.Format("n1", values[0]);
}
但是这会给n1
而不是格式化的数值。
我想获得格式化的数值。例如,传递12345
,我想获得12 345.0
。
答案 0 :(得分:4)
使用
string.Format("{0:n1}", values[0]);
如果传递的值不是数字而是字符串,则需要先解析它(f.e。Convert.ToDecimal
)。
答案 1 :(得分:1)
使用字符串插值,您可以按如下方式编写:
private string FormatValue(string field, object[] values)
{
return $"{Convert.ToDecimal(values[0]):n1}";
}
答案 2 :(得分:0)
怎么样:
object value = values[0]; // why an array for one value?
if(value is IFormattable) {
return ((IFormattable)value).ToString("n1", CultureInfo.CurrentCulture);
} else {
return value?.ToString();
}
答案 3 :(得分:0)
好像你想根据你的示例数据(整数)做这样的事情:
private string FormatValue (object value)
{
//You can amend this check to another numeric type or add others
if (value is int)
{
return string.Format("{0:n1}", value);
}
else
{
throw new System.ArgumentException("object not an integer", value);
}
}
答案 4 :(得分:-1)
使用
result = values[0].ToString("n0")