• 四舍五入的一些简单写法(利用内置函数,算法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 + "";
    
    
            }
    
  • 相关阅读:
    Eclipse EE 3.6 failed to create the java virtual machine 解决
    [收藏]家用三线插座(220V单相)正确接线方法
    Java设计模式 Design Pattern:包装模式 Decorator Pattern
    MIME 类型列表
    面试题参考
    循环队列的运用求K阶斐波那契序列
    加密技术仿射密码
    面试题集锦_1
    栈的运用(5)转换逆波兰式
    栈的运用(6)逆波兰式求值
  • 原文地址:https://www.cnblogs.com/it888/p/3760963.html
Copyright © 2020-2023  润新知