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 + "";
    
    
            }
    
  • 相关阅读:
    Vue.js(2.x)之计算属性
    Vue.js(2.x)之插值
    Chrome 打不开任意网页以及设置、扩展程序等页面解决方法
    IDEA 查看某个class的maven引用依赖&如何展示Diagram Elements
    mysql事务隔离分析
    IDEA call Hierarchy 双击跳转源码后绿色选中背景不消失问题
    记一次RocketMQ源码导入IDEA过程
    springboot+mybatis多数据源
    http调用之RestTemplate
    BlockingQueue的几个实现分析
  • 原文地址:https://www.cnblogs.com/it888/p/3760963.html
Copyright © 2011-2022 走看看