我有以下代码:
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 次 |
| 最近记录: |