2

我有一些将指数数定义为常数的 C 代码。我如何用 C# 编写这个?

    double TOL = 1.E-8d;
    double TOL2 = 1.E - 8;
4

5 回答 5

8

如果小数点后没有数字,则不包括该点。与 C/C++/等相同。所以:

double TOL= 1E-8;
double TOL2 = 1E-8;

或者,也许,对于不同的价值:

double TOL = 1.5E-8;

这在规范中,第 2.4.4.3 节:

http://msdn.microsoft.com/en-us/library/ms228593.aspx

于 2010-12-03T12:51:10.850 回答
3
    double tol = 1.0e8;
    double tol2 = 1.0e-8;
于 2010-12-03T12:50:27.160 回答
3

您的第一个表格非常接近 - 但您只需要在“。”之后添加一个数字,或者删除“。” 完全:

double TOL = 1.0E-8d;
double TOL = 1E-8d;

有关这方面的规则,请参阅C# 语言规范的第 2.4.4.3 节。请注意,如果您愿意,也可以使用小写的“e”:

double TOL = 1.0e-8d;
double TOL = 1e-8d;

如果您从“真实”文字中省略后缀,则 double 是默认类型,因此这些也是有效的:

double TOL = 1.0e-8;
double TOL = 1e-8;

...但我个人会包括后缀以提高可读性。

于 2010-12-03T12:50:40.010 回答
2

这就是您在 C# 中的操作方式:

double value = -4.42330604244772E-305;

另请参阅System.Double 上的 MSDN

于 2010-12-03T12:48:35.677 回答
0

这是一个稍微不同的例子,而不是指数数字。

double value = 1744056d 在 Linux 上被 g++ 报告为错误。

double value = 1744056.0d很好。

于 2013-06-21T11:06:10.477 回答