将数字对象转换为格式化数字

时间:2016-10-14 09:15:41

标签: c# number-formatting

如何将object转换为string,并在数值上应用数字格式?传递的对象是一个数值。

我试过了

private string FormatValue(string field, object[] values)
{
    result = string.Format("n1", values[0]);
}

但是这会给n1而不是格式化的数值。 我想获得格式化的数值。例如,传递12345,我想获得12 345.0

5 个答案:

答案 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")