Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.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# float.Parse()需要什么符号来检测指数而不是乘以10^n?_C#_String_Parsing_Floating Point - Fatal编程技术网

C# float.Parse()需要什么符号来检测指数而不是乘以10^n?

C# float.Parse()需要什么符号来检测指数而不是乘以10^n?,c#,string,parsing,floating-point,C#,String,Parsing,Floating Point,用一个容易理解的标题来写有点难 在12E2或12E2上运行float.Parse时,它返回1200 12*10^2,而不是144 12^2。这发生在任何数字上,而不仅仅是这一个案例 编辑:是的,我知道12E2不应该给出12^2。我在问你该怎么做 需要什么符号才能使它返回一个正则指数,如12^2 我试过使用^,它会抛出一个错误,但我似乎无法从文档中分辨出正则指数应该使用什么符号 以下是我的代码,一点也不多: Debug.Log("text is " + text); input

用一个容易理解的标题来写有点难

在12E2或12E2上运行float.Parse时,它返回1200 12*10^2,而不是144 12^2。这发生在任何数字上,而不仅仅是这一个案例

编辑:是的,我知道12E2不应该给出12^2。我在问你该怎么做

需要什么符号才能使它返回一个正则指数,如12^2

我试过使用^,它会抛出一个错误,但我似乎无法从文档中分辨出正则指数应该使用什么符号

以下是我的代码,一点也不多:

Debug.Log("text is " + text);
input1 = float.Parse(text.ToString());
Debug.Log("Parsed string to " + input1);
它接受用户输入的文本并将其转换为浮点。

您的12E2是标准的,您得到的结果是正确的1200 12*10^2。这就是E的意思,m×10n

此外,对于正则幂表达式,没有可以使用Parse的重载或选项。Parse并不是为了做任意的数学运算而设计的,这正是您所要求的

不过,您可以自己解析到一定程度,然后在E或^或任何您喜欢的东西上拆分,假设这是用户输入,然后解析每个组件以传递到Math.Pow

输出

您的12E2是标准的,您得到的结果是正确的1200 12*10^2。这就是E的意思,m×10n

此外,对于正则幂表达式,没有可以使用Parse的重载或选项。Parse并不是为了做任意的数学运算而设计的,这正是您所要求的

不过,您可以自己解析到一定程度,然后在E或^或任何您喜欢的东西上拆分,假设这是用户输入,然后解析每个组件以传递到Math.Pow

输出


12*100等于1200,不是吗?12E2字面意思是12 x 10²。你想要的是数学,12,2,什么都没有。。。你想让它做的是解析一个数学表达式,但它并不是设计用来解析的。我得到1.524157875019e+16,这意味着答案是1.524157875019乘以10的十六次方,也就是乘以10的十六次方。我投票重新讨论这个问题不是因为我回答了。。。也许有点。。。密切原因与问题标题和正文中提出的问题无关。需要什么符号才能让它返回一个正则指数?就stackoverflow go的标准而言,这个问题很好,即使其中有一点误解。12^2是一个数学表达式,而不是整数文字12*100是1200,不是吗?12E2字面意思是12 x 10²。你想要的是数学,12,2,什么都没有。。。你想让它做的是解析一个数学表达式,但它并不是设计用来解析的。我得到1.524157875019e+16,这意味着答案是1.524157875019乘以10的十六次方,也就是乘以10的十六次方。我投票重新讨论这个问题不是因为我回答了。。。也许有点。。。密切原因与问题标题和正文中提出的问题无关。要让它返回一个正则指数,需要什么符号?就stackoverflow的标准而言,这个问题很好,即使其中有一点误解。12^2是一个数学表达式,而不是整数文本
var someWeirdString = "12E2";

var array = someWeirdString.Split('E');

var someFloat = float.Parse(array[0]);
var someInt = int.Parse(array[1]);

var someResult = Math.Pow(someFloat, someInt);

Console.WriteLine(someResult);
144