这个部门出了什么问题?

2 c# double division

我认为有很多东西要学习数据类型.为什么会这样

double result = ((3/8)*100).ToString();
Run Code Online (Sandbox Code Playgroud)

它给零..应该是37,5 ...... :(

Bur*_*ard 12

3/8执行整数除法,结果为0

double result = ((3.0/8)*100);
Run Code Online (Sandbox Code Playgroud)

应该这样做.

顺便说一句,如果你这样做((3.0/8)*100).ToString()你得到一个字符串而不是一个双.


sha*_*oth 5

您需要说服编译器执行浮点除法:

double result = (((double)3/8)*100);
Run Code Online (Sandbox Code Playgroud)

否则它执行整数除法,然后 3/8 为零。