我有以下代码:
double a = 8/ 3;
Response.Write(a);
Run Code Online (Sandbox Code Playgroud)
它返回值2.为什么?我需要至少一个十进制数字.像2.6或2.66这样的东西.我怎样才能得到这样的结果?
尝试
double a = 8/3.0d;
Run Code Online (Sandbox Code Playgroud)
要么
double a = 8.0d/3;
Run Code Online (Sandbox Code Playgroud)
得到一个准确的答案.
因为在表达式中,a = 8/3
两个操作数都是int
如此,所以结果int
与它存储在a中的事实无关double
.结果总是在更高数据类型的操作数中
回答
8和3是从变量得到的.我可以进行某种演员表演吗?
如果值来自变量,您可以将其中一个操作数强制转换为double
:
int b = 8;
int c = 3;
double a = ((double) b) /c;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
367 次 |
最近记录: |