C# 精确地串到串

C# 精确地串到串,c#,string,C#,String,也许是一个无关紧要的问题,但我的答案是空白的 我有点像: public class Foo { private string _variableValue; public string VariableValue { get { return _variableValue; } set {

也许是一个无关紧要的问题,但我的答案是空白的

我有点像:

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
返回本身,但格式化
精度
小数位

示例:
VariableValue
为“10.12345”,
精度
2
VariableValue
应为
10.12

示例(2):
可变值
为“10”;
精度
5

VariableValue
应该是
10.00000
你是说
\u 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; }
}
如果“\u 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; }
}

你是说
\u 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; }
}
如果“\u 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; }
}


您能更好地解释您的问题吗?@111WARLOCK111更新了问题。通过将字符串解析为双精度,将其四舍五入到所需的小数位数,并将其作为字符串返回。如果您在
VariableValue
中“持有”一个
double
值,为什么它是
string
?我会将字符串转换为双精度,并将该值显示为双精度值。但是,如果这不可行,您可以解析小数点,并根据其相对于字符串总长度的位置进行截断。您能更好地解释您的问题吗?@111WARLOCK111更新了问题。通过将字符串解析为双精度,将其四舍五入到所需的小数位数,并将其作为字符串返回。如果您正在“保留”
VariableValue
中的
double
值,为什么它是
字符串
?我会将字符串转换为double,并将该值作为double公开。但是,如果这不可行,您可以解析小数点并根据其相对于字符串总长度的位置进行截断。我不知道简单的变量值不是双精度@琼斯:如果你采用第一种方法,它会改变什么吗?@gleng我编辑了答案:只需在返回值之前进行快速转换。@Vlad是的,我想这可能也是最好的方法。谢谢我不知道简单的变量值不是双精度的@琼斯:如果你采用第一种方法,它会改变什么吗?@gleng我编辑了答案:只需在返回值之前进行快速转换。@Vlad是的,我想这可能也是最好的方法。谢谢