字符串到精度的字符串

时间:2013-10-31 18:16:39

标签: c# string

也许是一个微不足道的问题,但我正在画一个空白。

我有类似的东西:

public class Foo
{
        private string _variableValue;
        public string VariableValue
        {
            get
            {
                return _variableValue;
            }
            set
            {
                if (value == _variableValue) return;
                _variableValue = value;
            }
        }

        public int Precision { get; set; }
}

基本上,VariableValue包含双精度值。我在Precision中存储了一个小数精度数。如何让VariableValue Get返回自身,但格式化Precision小数位?

示例: VariableValue为“10.12345”,Precision2VariableValue应为10.12

示例(2)VariableValue为“10”,Precision5VariableValue应为10.00000

1 个答案:

答案 0 :(得分:5)

你的意思是_variableValue是双倍的吗?在那种情况下:

public class Foo
{
    private double _variableValue;
    public string VariableValue
    {
        get
        {
            return _variableValue.ToString("N" + Precision);
        }
        set
        {
            if (value == _variableValue.ToString()) return;
            Double.TryParse(value, _variableValue); // in case of non-numerics
        }
    }

    public int Precision { get; set; }
}

如果`_variableValue'不是双...那么它有点怪异:

public class Foo
{
    private string _variableValue;
    public string VariableValue
    {
        get
        {
            double doubleValue;
            Double.TryParse(_variableValue, out doubleValue); // in the case of non-numerics
            return doubleValue.ToString("N" + Precision);
        }
        set
        {
            if (value == _variableValue) return;
            _variableValue = value;
        }
    }

    public int Precision { get; set; }
}