truncation from 'const double' to 'float'

堕落阿卡德 2010-12-19 04:19:51
程序是这样的:
#include<iostream>
using namespace std;
const float pi=3.14;
void main()
{
}
调试提示这个
warning C4305: 'initializing' : truncation from 'const double' to 'const float'
这是为什么?
系统为什么就默认3.14是double类型了?
...全文
680 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
無_1024 2010-12-19
  • 打赏
  • 举报
回复
C++编译器默认的 没有明确指定是都是默认double 因为在编译器内部float也是按照double格式来存贮的 看看系统操作就会有的
qq120848369 2010-12-19
  • 打赏
  • 举报
回复
float:3.14f
double:3.14
herman~~ 2010-12-19
  • 打赏
  • 举报
回复
编译器告诉你存在 丢失精度的警告
muyu1990 2010-12-19
  • 打赏
  • 举报
回复
都说了··
luciferisnotsatan 2010-12-19
  • 打赏
  • 举报
回复
3.14编译器默认是double的,加上f告诉编译器这是一个float型
haorengoodman 2010-12-19
  • 打赏
  • 举报
回复
改为3.14f就能够消除警告
haorengoodman 2010-12-19
  • 打赏
  • 举报
回复
是的,可以把float改为int验证;
float是用一个字(32位)表示
double是用两个字(64位)表示
所以:int被截断就成了3
float被截断仍然是3.14
gules 2010-12-19
  • 打赏
  • 举报
回复
系统为什么就默认3.14是double类型了?
-------------------------------
使用 3.14f
gules 2010-12-19
  • 打赏
  • 举报
回复
编译系统提示从double类型转换到float类型数据会被舍入或裁减。

64,639

社区成员

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

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