Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在构造函数级别将浮点格式化为字符串_C# - Fatal编程技术网

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); }
}