所有,
我在C#中设置了decimal
值。我将它们写入类中的字段,然后将该类序列化为XML数据文件。但是,在尝试将存储为零或0的值四舍五入到小数点后四位时,我遇到了一个问题。我想将0存储为0.0000。是否可以使用decimal
?当然,当转换为string
时,我可以做到这一点,而这不是问题。我读了很多线程,但是似乎都没有解决这个问题。
非常感激任何的帮助。我的代码片段是:
// directCost (dCost).
decimal dCost = Convert.ToDecimal(EpiCostValues[(int)epiCostField.directCost]);
dCost = decimal.Round(dCost, 4, MidpointRounding.AwayFromZero);
episodeCostTmp.dCost = dCost;
// indirectCost (iCost).
decimal iCost = Convert.ToDecimal(EpiCostValues[(int)epiCostField.indirectCost]);
iCost = decimal.Round(iCost, 4, MidpointRounding.AwayFromZero);
episodeCostTmp.iCost = iCost;
但这不会强制0到0.0000,这是.xml数据文件所需格式的问题。
最佳答案
将此行添加到您的代码中
dCost *= 1.0000m;
例如:
// directCost (dCost).
decimal dCost = Convert.ToDecimal(EpiCostValues[(int)epiCostField.directCost]);
dCost *= 1.0000m;
dCost = decimal.Round(dCost, 4, MidpointRounding.AwayFromZero);
episodeCostTmp.dCost = dCost;
希望这可以帮助 :)