问个关于强制类型转换符的有关问题
问个关于强制类型转换符的问题.
下面是我写的测试程序:
#include <iostream>
#include <iomanip>
using std::cin;
using std::cout;
using std::endl;
using std::fixed;
using std::setprecision;
int main (void)
{
int a = 257 ,b = 3 , c = 0;
c = static_cast < double > (a)/b;
cout < < setprecision( 2 ) < < fixed < < c < < endl;
cin.get();
return 0;
}
本来答案应该是:85.67的.
但是我的答案还是85
请问错在哪里呢?怎么类型没有被转换呢?
谢谢!!
------解决方案--------------------
static_cast < double > (a)/b;
这个表达式本来是double型的。
可惜忙活了半天最后又把它赋给了一个整形变量,差不多前功尽弃了。
------解决方案--------------------
double c = static_cast < double > (a)/b; //要声明c为double型的
cout < <c < <endl;
------解决方案--------------------
int a = 257 ,b = 3 ;
cout < < setprecision( 2 ) < < fixed < < static_cast < double > (a)/b < < endl;
------解决方案--------------------
^_^ 这种错确实很 建议自己多检查下程序
下面是我写的测试程序:
#include <iostream>
#include <iomanip>
using std::cin;
using std::cout;
using std::endl;
using std::fixed;
using std::setprecision;
int main (void)
{
int a = 257 ,b = 3 , c = 0;
c = static_cast < double > (a)/b;
cout < < setprecision( 2 ) < < fixed < < c < < endl;
cin.get();
return 0;
}
本来答案应该是:85.67的.
但是我的答案还是85
请问错在哪里呢?怎么类型没有被转换呢?
谢谢!!
------解决方案--------------------
static_cast < double > (a)/b;
这个表达式本来是double型的。
可惜忙活了半天最后又把它赋给了一个整形变量,差不多前功尽弃了。
------解决方案--------------------
double c = static_cast < double > (a)/b; //要声明c为double型的
cout < <c < <endl;
------解决方案--------------------
int a = 257 ,b = 3 ;
cout < < setprecision( 2 ) < < fixed < < static_cast < double > (a)/b < < endl;
------解决方案--------------------
^_^ 这种错确实很 建议自己多检查下程序