【发布时间】:2014-09-11 20:18:46
【问题描述】:
在 Linux Mint 17 上运行 MonoDevelop 4.0.12 并在使用 Random.NextDouble() 时遇到一个奇怪的问题。
考虑一下:
Random r = new Random ();
double dd = r.NextDouble ();
Console.WriteLine (dd);
dd = r.NextDouble ();
Console.WriteLine (dd);
在monodevelop中运行,一切都很好
0.226428853800577
0.331709416335702
(不管我运行多少次)
在monodevelop中调试,一切都不是
3.75
0
NextDouble 应该给我一个介于 0.0 和 1.0 之间的数字。更奇怪的是,调试器显示dd这两个值的值分别为5.25和3.5
每次运行时,控制台都会显示不同(错误)的输出,但调试器显示的输出相同。
有什么想法吗?
我使用 libmono-debugger-soft4.0a-cil 作为调试器 (v3.2.8+dfsg-4ubuntu1)。我尝试为不同版本的 .NET 构建,并为 Random() 提供一个明确的种子,同样的事情。
MonoDevelop
Version 4.0.12
Runtime:
Mono 3.2.8 (Debian 3.2.8+dfsg-4ubuntu1) (64-bit)
GTK 2.24.23
GTK# (2.12.0.0)
【问题讨论】:
-
查看
int dd = (int)(r.NextDouble () * int.MaxValue);时结果是否“更好”(尝试通过检查double变量来隔离值。) -
无论我调用多少次,它总是给出相同的值 (2147483645)。无论是在显示器上还是在调试器中。运行的时候,给出了2个不同的值……很奇怪!
-
我什么也没得到。在 VS 中运行良好:
-
我确定它确实如此:)。感谢收看。
标签: debugging mono monodevelop