Ant*_*nko 1 c++ double int casting
为什么每当我在Visual Studio 2008中编译并运行以下代码时:
double value1 = 10.5;
double value2 = 15.5;
int whole_number = value1 + value2;
Console::WriteLine(whole_number);
Run Code Online (Sandbox Code Playgroud)
当答案是25时,我得到的值不正确26.
但是当我在双打中使用静态强制转换时,我得到了正确的答案,即25.
如何解释错误的输出?
这是绝对正确的.
double value1 = 10.5;
double value2 = 15.5;
int whole_number = value1 + value2; // int whole_number = 26.0;
Console::WriteLine(whole_number);
Run Code Online (Sandbox Code Playgroud)
你会期待什么呢?编译器首先评估右侧,然后隐式转换为int.因此,26.0成为26
在添加之前进行投射,然后你将添加10和15,结果25:)
| 归档时间: |
|
| 查看次数: |
352 次 |
| 最近记录: |