64,696
社区成员
发帖
与我相关
我的任务
分享
// 关于一个float型的数警告机制的问题?
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
float f0 = 3.0;
//ok
float f1 = 3.1;
//warning C4305: 'initializing' : truncation from 'double' to 'float'
float f2 = 3.2;
//warning C4305: 'initializing' : truncation from 'double' to 'float'
float f3 = 3.3;
//warning C4305: 'initializing' : truncation from 'double' to 'float'
float f4 = 3.4;
//warning C4305: 'initializing' : truncation from 'double' to 'float'
float f5 = 3.5;
//ok
float f6 = 3.6;
//warning C4305: 'initializing' : truncation from 'double' to 'float'
return 0;
}
// 一个n.m这样写法的数,默认为double型的数.所以才出现truncation from 'double' to 'float'.
// 因此,通行的写法是float f = 1.2f;尾随一个符号f.
// 但为什么f0 = 3.0;f5 = 3.5;却是ok的?是警告机制做得不完美?