用户要求:低于等于0.5元按0.5元,0.51-1按1元,1.01-1.50按1.5元,。
以0.5元为最小单位进位,求个算法

解决方案 »

  1.   

    double i = 0.50;

    int iTemp = Convert.ToInt32(i * 100);
    if(iTemp % 50 != 0)
    {
    MessageBox.Show(Convert.ToString(Convert.ToDouble(iTemp/50*50)/100+0.5));
    }
    else
    {
    MessageBox.Show(i.ToString());
    }
      

  2.   

    最笨的算法:
    float GetData(float money)
    {
       float ret = 0;
       while(money > 0)
       {
          ret += 0.5;
          money -= 0.5;
       }
       return ret;
    }
      

  3.   

    if(i-0.5<floor(i))
    {return floor(i)+0.5}
    else{return floor(i)+1}