所有,

我在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;


希望这可以帮助 :)

10-07 18:32