首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

double变量能用分数形式初始化吗?该怎么处理

2012-03-15 
double变量能用分数形式初始化吗?如下声明:double d1[2] { 1/2 , 1/2 }double d2[3] { 1/6 , 4/6 , 1

double变量能用分数形式初始化吗?
如下声明:
  double d1[2] = { 1/2 , 1/2 };
  double d2[3] = { 1/6 , 4/6 , 1/6 };
  double d3[4] = { 1/8 , 3/8 , 3/8 , 1/8 };
  double d4[5] = { 7/90 , 32/90 , 12/90 , 32/90 , 7/90 };
  double d5[6] = { 19/288 , 75/288 , 50/288 ,50/288 , 75/288 , 19/288 };
  double d6[7] = { 41/840 , 216/840 , 27/840 , 272/840 , 27/840 , 216/840 , 41/840 };
  double d7[8] = { 751/17280 , 3577/17280 , 1323/17280 , 2989/17280 , 2989/17280 , 1323/17280 , 3577/17280 , 751/17280 };
  double d8[9] = { 989/28350 , 5888/28350 , -928/28350 , 10496/28350 , -4540/28350 , 10496/28350 , -928/28350 , 5888/28350 , 989/28350 };

初始化后,所有的都为0,如:
cout<<d1[0];
输出为0

我想是因为初始化是不识别除法表达式吧,试着用如下声明:
double d1[2] = { static_cast<double>(1/2) , static_cast<double>(1/2) };
结果还是0,请问高手有什么初始化方法吗?谢谢

[解决办法]
double d1[2] = { 1.0/2 , 1.0/2 }; 

[解决办法]
double d1[2] = { static_cast <double >(1)/2 , static_cast <double >(1)/2 }; 

热点排行