也许是一个微不足道的问题,但我正在画一个空白。
我有类似的东西:
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”,Precision
为2
:
VariableValue
应为10.12
示例(2):VariableValue
为“10”,Precision
为5
:
VariableValue
应为10.00000
答案 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; }
}