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 + "";
    
    
            }
    
  • 相关阅读:
    SVN配置文件详解
    让Linux开机运行命令
    find命令用法介绍
    关于js优化和css优化
    弹性盒布局、头尾固定中间部分自适应布局
    css样式重置(初始化)收集
    动态嵌套form,使用Stimulus Js库(前后端不分离)
    给Mac的Dictionary添加其他原装词典
    使用rvm关联ruby版本和rails版本。
    Rails6.0 Beta版本1: ActionText的简单使用
  • 原文地址:https://www.cnblogs.com/it888/p/3760963.html
Copyright © 2011-2022 走看看