double变量能用分数形式初始化吗?

AlwaysSLH 2007-10-21 10:56:09
如下声明:
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,请问高手有什么初始化方法吗?谢谢
...全文
181 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
txwang2008 2010-08-18
  • 打赏
  • 举报
回复
俺,也犯了。谢谢大家分享。
#define KD (double)(1/3)
AlwaysSLH 2007-10-21
  • 打赏
  • 举报
回复
欧,犯这种低级错误了,见笑了
谢谢weiym了
weiym 2007-10-21
  • 打赏
  • 举报
回复
double d1[2] = { static_cast <double >(1)/2 , static_cast <double >(1)/2 };
weiym 2007-10-21
  • 打赏
  • 举报
回复
double d1[2] = { 1.0/2 , 1.0/2 };

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧