Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 压缩一个巨大的数字?_C#_Numbers - Fatal编程技术网

C# 压缩一个巨大的数字?

C# 压缩一个巨大的数字?,c#,numbers,C#,Numbers,我试图找到方法来显示大量的能量,但徒劳无功(或者我的大脑正在冬眠)。例如,如果 结果=0.00012845,应显示为12.845 x 10^-5或如果 结果=1284569,应显示为1284.569 x 10^3,依此类推。您可以使用Double.ToString(“E”)以123.456E7()的形式获得科学符号 然后,您可以进一步使用String.Replace将“E”替换为“x10^” 它看起来像这样 string myString = myDouble.ToString("E").Rep

我试图找到方法来显示大量的能量,但徒劳无功(或者我的大脑正在冬眠)。例如,如果

结果=0.00012845,应显示为12.845 x 10^-5或如果
结果=1284569,应显示为1284.569 x 10^3,依此类推。

您可以使用Double.ToString(“E”)以123.456E7()的形式获得科学符号

然后,您可以进一步使用String.Replace将“E”替换为“x10^”

它看起来像这样

string myString = myDouble.ToString("E").Replace("E", " x 10^");

嗯,我以前从未尝试过它,我很惊讶它能起作用,请在控制台应用程序上尝试以下代码:

double number = 0.00012845;

        while(number > 0.0001)
        {
            number /= 10;
        }

        Console.Write(number);

        Console.ReadKey();

使用
ToString(“E”)
,它将显示
1.284500E-004
我正在尝试找出确定指数和小数点分隔符的规则。“E”格式说明符可以满足您的要求,但它使用的科学标准是有效位在大于或等于1到小于10之间,这不是您要遵循的规则……规则似乎是“压缩”;它似乎缺少“以统一的方式”的规则……@TaW,但在第二个示例中,当“1284.569 x 10^3”比“1284569”长时除外,因此不是真正的压缩。:)