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是的,我想这可能也是最好的方法。谢谢