转换为十进制并向上舍入,保留2位小数

时间:2016-09-09 09:20:36

标签: c# visual-studio

我已经在系统上工作了一段时间,客户端一直在测试它。他们希望系统现在向上舍入保持两位小数。有人可以提供帮助,因为我似乎遇到Math.Ceiling问题并将数字转换为十进制数。我的代码如下。

第2行是需要进行更改的地方,数字需要向上舍入,保留2位小数。

float fcharge = Convert.ToSingle(dr["total_charge_weight"]) * Convert.ToSingle(dr["H_unit_rate"]);
decimal dcharge = Math.Round(Convert.ToDecimal(fcharge), 2);
float charge = Convert.ToSingle(dcharge); 

1 个答案:

答案 0 :(得分:0)

这不是吗?

 public static float RoundUp(float number, int decimalPlaces)
 {
     var scale = Math.Pow(10, decimalPlaces);
     return (float)(Math.Ceiling(number * scale) / scale);
 }

需要考虑的事项:

  1. 您必须 up Math.Round不这样做。
  2. 无需使用Convert,只需投射。
  3. 无需转换为decimal,您在转换回float时将其丢弃;使用隐式转换为double,只有在需要时才转回float