C# 在构造函数级别将浮点格式化为字符串
我有一个构建表的构造函数。输入数据的方式相当复杂,并且取决于以前的数据。我的一列显示了我想格式化为货币的浮动。我希望在获取和设置数据的级别上执行此操作,因此当我获取或设置数据时,我使用的是一个浮点,但当它显示时,它是一个格式化的字符串。我有转换成和转换回所需格式的方法。我如何实现它们 示例代码C# 在构造函数级别将浮点格式化为字符串,c#,C#,我有一个构建表的构造函数。输入数据的方式相当复杂,并且取决于以前的数据。我的一列显示了我想格式化为货币的浮动。我希望在获取和设置数据的级别上执行此操作,因此当我获取或设置数据时,我使用的是一个浮点,但当它显示时,它是一个格式化的字符串。我有转换成和转换回所需格式的方法。我如何实现它们 示例代码 public class WarehouseItem { public WarehouseItem(int id, int parentID, string clientID, string in
public class WarehouseItem
{
public WarehouseItem(int id, int parentID, string clientID, string instrumentID, string orderID, string status, float openPosition, float execPosition, float cumOpenPosition, float cumExecPosition, string time, string logTime)
{
this.OpenPosition = openPosition;
}
public float OpenPosition
{
get; // returns float (retroConvert)
set; // takes a float -> string (convert)
}
private float retroConvert(string input)
{
string str = input.Replace(",", "");
return float.Parse(str);
}
private string convert(float input)
{
return ((float)input).ToString("#,##0.00");
}
}
您可以使用另一个只有getter的字段来返回格式化字符串 例如
旁注:你想做的通常都是坏主意。通常,您在内部以最合适的格式存储数据(
decimal
表示货币值),并且仅在输出期间格式化数据(通常通过数据项类外部的代码)。如果你真的想尝试的方式,请至少使用文化感知格式/解析,避免<代码>。替换(“,”,“”“”/“代码”和硬编码输出格式,考虑“C”指定货币格式…谢谢你的建议!
public string OpenPositionFormatted
{
get { return convert(OpenPosition); }
}