C# 用c语言将非常大的指数转换成十进制#

C# 用c语言将非常大的指数转换成十进制#,c#,int,exponential,C#,Int,Exponential,5.35754303593134E+300至53575430359313400000000000000000000。。。000000000 有人能做到这一点,因为这个数字非常大 我试过: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication2 { cla

5.35754303593134E+300至53575430359313400000000000000000000。。。000000000

有人能做到这一点,因为这个数字非常大

我试过:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            double s = double.Parse((System.Math.Pow(2, 999)).ToString(), System.Globalization.NumberStyles.Float);
            Console.WriteLine("value={0}", s);
            Console.ReadKey();
        }
    }
}

执行以下操作之一:

Console.WriteLine(s.ToString("N0")); //comma separated
Console.WriteLine(s.ToString("F0")); 

两者都有效。

您的标题和代码说明了不同的内容,但

基本上,你不能。无法保持此值,因为它远远超出其范围。它的范围从7.9x1028到7.9x1028

您可以将其保存在double(即
Math.Pow
返回类型,在这种情况下,您甚至不需要获取它的字符串表示形式并再次将其解析为double)或

如果你想得到它的字符串表示形式,你可以使用like

或者你可以用乔恩·斯基特的方法来精确地表达它的价值

DoubleConverter.ToExactString(s) // 5357543035931336604742125245300009052807024058527668037218751941851755255624680612465991894078479290637973364587765734125935726428461570217992288787349287401967283887412115492710537302531185570938977091076523237491790970633699383779582771973038531457285598238843271083830214915826312193418602834034688

您需要一个字符串类型。为了便于将来参考,您不需要在代码中添加

标记,只需将其全部缩进四个空格,内置格式将检测为代码。它不起作用。它给出---值对于小数来说太大或太小。欢迎。也许,当你的问题得到回答时,你也需要标记答案。@amitpradhan添加了一个示例,其中包含了它的值和字符串表示部分。
BigInteger s = (BigInteger)Math.Pow(2, 999);
s.ToString("E14") // 5,35754303593134E+300
DoubleConverter.ToExactString(s) // 5357543035931336604742125245300009052807024058527668037218751941851755255624680612465991894078479290637973364587765734125935726428461570217992288787349287401967283887412115492710537302531185570938977091076523237491790970633699383779582771973038531457285598238843271083830214915826312193418602834034688