BigInteger.ToString 科学记数法(即带 E)

BigInteger.ToString in scientific notation (i.e. with E)

Double.ToString对一个非常大的数通常returns只有一个有效数字,后面跟着十的幂次方的指数表示法。但是,BigInteger 不会这样做,只是 returns 数字的所有数字。

我怎样才能让它像双精度那样只输出科学格式而不是完整的数字?我无法将它转换为双精度,因为它大于 Double.MaxValue。我可以自己构建一个格式化函数,但如果有一个考虑所有文化的内置功能,我会更高兴。

与大多数 ToString 方法一样,BigInteger.ToString 允许您传递 格式字符串 :

var myString = myBigInteger.ToString("E"); // yields exponential notation

有关 .NET 中可用的内置数字格式字符串的详细说明,请参阅以下 MSDN 页面:

请注意,Exponential Format Specifier 允许您提供可选的 precision 说明符。

您应该能够简单地使用 BigInteger.ToString() method along with the expected Exponential formatting string E 来处理科学记数法:

var input = BigInteger.Parse("12498124912841982142441242424421");
var output = input.ToString("E"); // yields "1.249812E+031"