为什么返回C#Convert.ToDouble(5/100)0.0而不是0.05

Mar*_*rco 8 c# double rounding

double variable = Convert.ToDouble(5/100);
Run Code Online (Sandbox Code Playgroud)

将返回0.0但我预计0.05

什么可以/必须改变得到0.05

因为这个例子中的5是一个变量

Nor*_*ame 19

5/100以整数运算完成,转换产生0 .尝试

double variable = 5.0/100;
Run Code Online (Sandbox Code Playgroud)

如果5 是变量x(整数类型),则使用:

variable = (double)x/100; 
Run Code Online (Sandbox Code Playgroud)

要么

variable = ((double)x)/100;
Run Code Online (Sandbox Code Playgroud)

使意图明确(感谢约翰!)

要么

variable = x/100.0;
Run Code Online (Sandbox Code Playgroud)

  • 我解开了我的downvote,因为你添加了一个正确的例子,但是你仍然有一个错误的例子,使用`Convert.ToDouble`表达式*已经*是一个双精度型.为什么? (2认同)