EPInvestment环保投资=1万
TotalInvestment总投资=3万this.lblProportion.Text = Convert.ToString((Convert.ToInt32(sdr["EPInvestment"]) / Convert.ToInt32(sdr["TotalInvestment"])) * 100) + "%";
为什么上面的结果算出来等于0%???
另外我想要结果只保留两位小数等于33.33%,应该用哪个类型转换?

解决方案 »

  1.   

    不要转化为INT,转化为Double再计算
      

  2.   

    建议用decimal...尽量不要用double...浮点数有误差...
      

  3.   

    gicjoe(aspnet)
    double.parse(value).toString("0.00")
    -----------------------------------------------this.lblProportion.Text = Double.Parse(Convert.ToDouble(sdr["EPInvestment"]) / Convert.ToDouble(sdr["TotalInvestment"])).ToString("0.00") + "%";提示有编译错误 
    说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误信息: CS1502: 与“double.Parse(string)”最匹配的重载方法具有一些无效参数
      

  4.   

    this.lblProportion.Text = (Convert.ToDecimal(sdr["EPInvestment"]) / Convert.ToDecimal(sdr["TotalInvestment"])).ToString("0.00") + "%";