1

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

我有类似的东西:

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

4

1 回答 1

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; }
}
于 2013-10-31T18:21:48.173 回答