Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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#_Asp.net_Asp.net Mvc - Fatal编程技术网

C# 将科学记数法转换为浮点/整数

C# 将科学记数法转换为浮点/整数,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我正在使用ASP.NETMVC(这个问题无关紧要),我正在寻找一个想法,因为我在下面的场景中遇到了问题 我正在上一堂示范课 Class Mountains { float distance; int Altitude; } 在UI中,如果用户在文本框中键入长整数(11111111111111)或浮点数(1111.2222343435446),则当到达C#(控制器)并分配到距离和高度时,值将转换为科学符号(1.11111111 E+55)。但在保存到DB或其他一些内部逻辑之前。我

我正在使用ASP.NETMVC(这个问题无关紧要),我正在寻找一个想法,因为我在下面的场景中遇到了问题

我正在上一堂示范课

Class Mountains
{
    float distance;
    int Altitude;
}
在UI中,如果用户在文本框中键入长整数(
11111111111111
)或浮点数(
1111.2222343435446
),则当到达C#(控制器)并分配到距离和高度时,值将转换为科学符号(
1.11111111 E+55
)。但在保存到DB或其他一些内部逻辑之前。我不想要科学符号,我很乐意把它作为长值

我可以在单独的酒店用

decimal.Parse("1.11111111111111E+55", NumberStyles.Float);
有没有办法改变默认行为?我需要在应用程序级别跨页面实现,那么我可以使用什么样的最佳解决方案,而不是在float和integer的每个属性上键入

扩展方法是我想到的方法,即使我需要为每个属性调用该方法并再次将其分配给对象,而不是直接将对象传递到下一层


在.NET中有更好的地方可以实现这一点吗?

“当它到达控制器时,它被转换为科学记数法”-你这是什么意思?当然,这只是一个
浮动
。如果您希望它是一个
长的
,这意味着您向我们展示的值甚至都是无效的。我恐怕不太清楚这里的情况是什么-但请确保您没有混淆
浮点值(它不是任何格式)和
浮点值的文本表示形式,例如,在调试器中。@JonSkeet那么我应该为长值而不是浮点值使用其他数据类型吗?Well
long
是64位整数类型
float
是一种32位二进制浮点类型。它们是完全不同的类型-无论您实际想要实现什么,都要使用正确的类型。
有什么方法可以更改默认行为吗?
是个糟糕的主意。任何使用您的程序集或新程序员的人都不知道为什么一个一直以一种方式工作的方法现在以另一种方式工作。而是编写自己的扩展方法
ToScientificFloat()
和/或
ToScientificInt()
。现在,当人们看到这个方法时,他们立刻知道它正在做一些不是默认行为的事情。