static_cast 不起作用。 C风格的演员作品。如何修复static_cast?

static_cast doesn't work. C style cast works. How to repair static_cast?

它工作正常:

srand(time(NULL));
cout<<(double)rand()/RAND_MAX<<endl;

没用:

srand(time(NULL));
cout<<static_cast<double>(rand()/RAND_MAX)<<endl;

为什么?如何解决?

(double)rand()/RAND_MAX

这里你只投rand()号。所以在你的代码中它也应该是这样的:

static_cast<double>(rand())/RAND_MAX

在您的示例中,您将两个 int 分开,然后将其转换为 double