zoukankan      html  css  js  c++  java
  • 一个简单的数字处理

    最近做项目遇到一个数算法问题,其实也不是很难,但就是做个笔记吧,记录一下。

    需求: 用户填写一个数,填写该数递增的数量,自动生成递增后的所有值,用户填写最小值最多保留俩位小数0.01,最大递增值是10000。递增值的取值范围就是这样了。

             取值时如果末尾数都是0,那么每次递增就取前面的值的位数,如果尾数不为0,那么直接取到该数值当前的位数值,举个例吧,本人语言表达能力不是很好

             例如:0.01,那么该数生成的递增值就为0.01

                      0.1 ,那么该数生成的递增值就为0.1

                      1.00 ,那么该数生成的递增值就为1

                      10.00 ,那么该数生成的递增值就为10

                      100.00 ,那么该数生成的递增值就为100

                      1000.00,那么该数生成的递增值就为1000                

                      10000.00,那么该数生成的递增值就为10000

                      1241 , 那么该随生成的递增值就为1,

                      1241.15,那么该数生成的递增值就为0.01

                      1241.10,那么该数生成的递增值就为0.1

                      1240 ,那么该数生成的递增值就为10

    这样能看明白了吧,就取递增值的时候从最后一位往前找,直到找到不为0的那位数为止。

    下面说下思路:

    首先先判断输入的数有没有小数点,如果有小数点则查看小数点后面的数是不是0,不为0,则说明每次递增的值肯定就是为小数了,直接处理小数部分即可。

    如果输入的小数点后面都是0,那么就处理整数部分。

    直接上代码了,很简单,估计都能看明白


     

       class Program
        {
            static void Main(string[] args)
            {
                while (true)
                {
                    Console.WriteLine("输入一个数");
                    string v = Console.ReadLine();
                    //每次递增的数
    
    
                    string unit = "";
    
                    char[] list = v.ToString().ToArray();
                    // 标记最小值是否已经获取,该标记决定其他值用“0”或“.”补齐。
                    bool compare = false;
    
                    for (int i = list.Length; i > 0; i--)
                    {
                        string sign = list[i - 1].ToString();
    
                        if (sign != ".")
                        {
                            if (sign != "0" && !compare)
                            {
                                sign = "1";
                                compare = true;
                            }
                            else
                            {
                                sign = "0";
                            }
                        }
                        unit = sign + unit;
                    }
    
                    Console.WriteLine("随机数每次递增:  " + Convert.ToDouble(unit));
    
                    Console.WriteLine(">>");
    
                }
    
            }
        }
    

    本人水平有限,也由于着急弄,就没想过过多的处理方法,有不对的地方请各位大神多多指教

  • 相关阅读:
    NYOJ127 星际之门(一)【定理】
    JAVAWEB开发之JSTL标签库的使用、 自己定义EL函数、自己定义标签(带属性的、带标签体的)
    如何写一个不可变类
    保护性拷贝
    猴子搬香蕉问题
    阿里云服务器安装redis启动失败问题排查
    oauth2测试
    远程连接云服务器上的mysql失败问题解决
    SQLServer中将yyyy:MM:dd HH:mm:ss.sss转为yyyyMMddHHmmss
    Centos8 安装 MySQL
  • 原文地址:https://www.cnblogs.com/yuanye0918/p/3792673.html
Copyright © 2011-2022 走看看