int 怎么转换double求大神指点

#include
using namespace std ;
int main (void)
{
int a=1;
a=1.11;
cout <<a<<endl;
}
要如何使输出的a是以浮点数的形式输出。求大神指点,弄了一晚上了,都是输出的整数。

 int要想表示浮点数,也是可以的,不过需要一点技巧。比如
double d = 1.11;
int i = (int)(d * 100.0);
cout << i / 100 << "." << i % 100;

int a = 1;
cout << (double) a << endl;

你把一个浮点数得常量付给整形变量,整形变量会舍弃掉小数部分,当然无法输出浮点数了

double a = 1.11;
cout << a << endl;

a+=0.11自动转换,或者加一个double都行

图片说明

通过强制转换试过吗?
1、C++的四种强制类型转换,所以C++不是类型安全的。
分别为:static_cast , dynamic_cast , const_cast , reinterpret_cast
2、四种转换的区别:
static_cast:可以实现C++中内置基本数据类型之间的相互转换。
const_cast: const_cast操作不能在不同的种类间转换。相反,它仅仅把一个它作用的表达式转换成常量。它可以使一个本来不是const类型的数据转换成const类型的,或者把const属性去掉。
reinterpret_cast: 有着和C风格的强制转换同样的能力。它可以转化任何内置的数据类型为其他任何的数据类型,也可以转化任何指针类型为其他的类型。它甚至可以转化内置的数据类型为指针,无须考虑类型安全或者常量的情形。不到万不得已绝对不用。
dynamic_cast: 其他三种都是编译时完成的,dynamic_cast是运行时处理的,运行时要进行类型检查。不能用于内置的基本数据类型的强制转换。dynamic_cast转换如果成功的话返回的是指向类的指针或引用,转换失败的话则会返回NULL。使用dynamic_cast进行转换的,基类中一定要有虚函数,否则编译不通过

你可能需要的是格式化输出
```// setprecision example
#include // std::cout, std::fixed
#include // std::setprecision

int main () {
double f =3.14159;
std::cout << std::setprecision(5) << f << '\n';
std::cout << std::setprecision(9) << f << '\n';
std::cout << std::fixed;
std::cout << std::setprecision(5) << f << '\n';
std::cout << std::setprecision(9) << f << '\n';
return 0;
}


double (a)=1.11;
printf("%lf",double(a));或cout<<double(a);