我做了一个简单的C++程序.我期望浮点输出为5/9,但是为零.有人可以评论,为什么输出是意外的,即零?
#include<iostream>
using namespace std;
void fun(double *ptr);
int main (int argc, char* argv[])
{
double a;
fun(&a);
cout<<a<<endl; // why not floating point 5/9??
}
void fun (double *ptr)
{
*ptr=(5/9);
}
Run Code Online (Sandbox Code Playgroud)
5/9将导致0因为它是int分裂.
你需要这样做
void fun (double *ptr)
{
*ptr = (5.0 / 9.0);
}
Run Code Online (Sandbox Code Playgroud)
您需要使用正确的类型文字:
5 // int
5.0 // double
5.0f // float
5u // unsigned int
5l // long
5ul // unsigned long
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |