任意两整数相除 保留小数点后10000位

您所在的位置:网站首页 根号2后10000位 任意两整数相除 保留小数点后10000位

任意两整数相除 保留小数点后10000位

2024-07-07 17:58| 来源: 网络整理| 查看: 265

思路:先给被除数扩大10^10000倍,然后从后向前截取10000位 即为结果的小数部分。

 

不过,程序中不能储存这么大的数,所以只能将数字字符串化,采用模拟手算的方法计算.

 

 

using System;

using System.Collections.Generic;

using System.Text;

namespace Calc2

{

    class Calc

    {

        /// 

        ///  KINGLO

 

        /// 

        /// 

        /// 

        public void Calcer(int num1, int num2)

        {

            //取被除数位数

            int num1Len = num1.ToString().Length;

            //取除数位数

            int num2Len = num2.ToString().Length;

            //结果

            String res = "";

            //两数相除的整数部分

            int portNum = num1 / num2;

            ///

            ///以下过程模拟手动除法过程

            ///

            //生成临时除数字符串

            String tempStr = "";

            //控制输入小数点变量

            int x = 0;

            for (int i = 0; i  i)

                {

                    tempStr += num1.ToString().ToCharArray()[i];

                }

                else

                {

                    tempStr += "0";

                }

                int tempNum = int.Parse(tempStr);

                int tempPort = tempNum / num2;

                if (tempPort != 0)

                {

                    tempStr = (int.Parse(tempStr) - tempPort * num2) + "";

                    x++;//记录商大于次数,当x=1时则是第一次商大于,此时输出小数点

                }

                if (x == 1)

                {

                    res+= '.';

                }

                //保存每次计算结果

                res += tempPort.ToString();

            }

            ///输出结果

                Console.Write("结果:"+res);

           

            Console.ReadLine();

        }

    }

}



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3