zoukankan      html  css  js  c++  java
  • 四舍五入的一些简单写法(利用内置函数,算法2种写法)

          //内置函数的写法
    
           //网上零售价和折扣价在计算结束需要进行进位,规则如下:
            //个位为1,2,3,4进位到5,例如计算后的价格为1201,则价格为1205;
            //个位为6,7,8,9进位到0,例如计算后的价格为1209.则价格为1210;
            public static string ChangePrice(double price)
            {
                int changed = 0;
                int m = (int)Math.Round(price);
                int n = (int)Math.Floor(price / 10);
                int d = m - n * 10;
                if (0 < d && d <= 4)
                {
                    changed = n * 10 + 5;
                }
                else if (5 < d && d <= 9)
                {
                    changed = n * 10 + 10;
                }
                else
                {
                    changed = m;
                }
                return changed + "";
            }
    
    //算法的写法
     public static string ChangePrice(double price)
            {
    
                int changed = 0;//改变后的值
                int m = 0;//四舍五入取整
                int n = 0;//取整数
    
                double temp = price;
                if (temp.ToString().IndexOf('.') > -1)
                {
                    string strTemp = temp.ToString();
                    strTemp = strTemp.Substring(0, strTemp.IndexOf('.'));
                    n = int.Parse(strTemp) / 10;//取整数
                    m = (int)Math.Round(temp);//四舍五入取整数
                    int d = m - n * 10;
                    if (0 < d && d <= 4)
                    {
                        changed = n * 10 + 5;
                    }
                    else if (5 < d && d <= 9)
                    {
                        changed = n * 10 + 10;
                    }
                    else
                    {
                        changed = m;
                    }
    
                }
                else
                {
                    string TempAgain = (temp / 10).ToString();
                    if (TempAgain.IndexOf('.') > -1)
                    {
                        TempAgain = TempAgain.Substring(0, TempAgain.IndexOf('.'));
                        n = int.Parse(TempAgain);
                        m = int.Parse(temp.ToString());
    
                        int d = m - n * 10;
                        if (0 < d && d <= 4)
                        {
                            changed = n * 10 + 5;
                        }
                        else if (5 < d && d <= 9)
                        {
                            changed = n * 10 + 10;
                        }
                        else
                        {
                            changed = m;
                        }
                    }
                    else
                    {
                        n = int.Parse(TempAgain);
                        m = int.Parse(temp.ToString());
    
                        int d = m - n * 10;
                        if (0 < d && d <= 4)
                        {
                            changed = n * 10 + 5;
                        }
                        else if (5 < d && d <= 9)
                        {
                            changed = n * 10 + 10;
                        }
                        else
                        {
                            changed = m;
                        }
                    }
    
    
                }
                return changed + "";
    
    
            }
    
  • 相关阅读:
    POJ 2492 并查集扩展(判断同性恋问题)
    菜鸟带你飞______DP基础26道水题
    HDU 1978 记忆化搜索(dfs+dp)
    HDU 1203 I NEED A OFFER (01背包&&概率dp)
    HDU 1176免费馅饼 DP数塔问题转化
    HDU 1069&&HDU 1087 (DP 最长序列之和)
    最短路&&最小生成树水题
    POJ 1797 Heavy Transportation (Dijkstra变形)
    数论学习笔记
    Codeforces Round #579 (Div. 3)
  • 原文地址:https://www.cnblogs.com/it888/p/3760963.html
Copyright © 2011-2022 走看看