2013-10-31 82 views
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中存储了一个小数精度数字。我怎么能VariableValueGet返回本身,但格式化Precision小数位?

实施例:VariableValue是 “10.12345”,Precision2VariableValue10.12

实施例(2)VariableValue是 “10”,Precision5VariableValue10.00000

+0

你能解释一下你的问题好,好吗? – 111WARLOCK111

+0

@ 111WARLOCK111更新后的问题。 – gleng

+0

通过将字符串解析为double,将其舍入到所需的小数位数并将其作为字符串返回。 – CodeCaster

回答

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; } 
} 
+0

不知道这是非常简单的 – Jonesopolis

+0

_variableValue是不是一个双。 @Jonesy – gleng

+0

它改变了什么,如果你采取第一种方法虽然......? – Jonesopolis