也许是一个琐碎的问题,但我正在空白。

我有类似的东西:

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”,Precision2
VariableValue应该是10.12

示例(2):VariableValue是“ 10”,Precision5
VariableValue应该是10.00000

最佳答案

您是说_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; }
}

关于c# - 串到串的精度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19713829/

10-11 22:30