float数据 与 double数据相乘时,结果转成int时会出现错误
2012-07-03 10:35
337 查看
问题描述:
环境:vc6.0单文档
情况1、 错
double h = 10.0f;
float d = 100.1f * h;
int c = int(d);
输出结果:h=10.0
d=1001
c=1000
情况2、 错
double h = 10.0f;
float d = 100.2f * h; // 这里有变化
int c = int(d);
输出结果:h=10.0
d=1002
c=1001
情况3、 正确 3到9
double h = 10.0f;
float d = 100.3f * h; // 这里有变化
int c = int(d);
输出结果:h=10.0
d=1003
c=1003
过程:
在错误时,回去查看 d 的值为:100.099999
解决:
在float d = 100.3f * h; 与句后加条哑语句(无用的语句),如:int a 0;
导致原因,尚不清楚,求解
环境:vc6.0单文档
情况1、 错
double h = 10.0f;
float d = 100.1f * h;
int c = int(d);
输出结果:h=10.0
d=1001
c=1000
情况2、 错
double h = 10.0f;
float d = 100.2f * h; // 这里有变化
int c = int(d);
输出结果:h=10.0
d=1002
c=1001
情况3、 正确 3到9
double h = 10.0f;
float d = 100.3f * h; // 这里有变化
int c = int(d);
输出结果:h=10.0
d=1003
c=1003
过程:
在错误时,回去查看 d 的值为:100.099999
解决:
在float d = 100.3f * h; 与句后加条哑语句(无用的语句),如:int a 0;
导致原因,尚不清楚,求解
相关文章推荐
- int、double、boolean、char、float、long、Object等七种数据类型转换成String数据类型 用到的方法是String.valueOf();
- 学点 C 语言(12): 数据类型 - 整型(int)、字符(char)、浮点(float、double)
- 关于C和C++中的基本数据类型int、long、long long、float、double、char、string的大小及表示范围
- Tarena - 变量与java的基本数据类型(int,long,float,double,char,boolean)
- int long longlong float double类型数据的范围
- 不同语言基本数据类型(int、char、float、double....)对应字节大小
- 奇怪的js问题(JavaScript浮点运算的问题) float类型相乘的有时候 会出现错误!! 注意!!!
- java byte、short、int、long、float、double、char基本数据类型范围
- int类型定义,float、double类型引用造成的结果
- c语言基本数据类型(short、int、long、char、float、double)
- c语言中计算int,float,double,char四种数据类型所能表示的数据范围
- MFC----Cstring 与 int、float、double 数据类型的相互转换
- VC 中 Cstring 与 int、float、double、char、string数据类型的相互转换
- JAVA_int类型数据精度高于float低于double
- c语言基本数据类型short、int、long、char、float、double
- C语言基本数据类型int float double
- 有关C++的数据类型(int,long,short,float,double等等)
- C++ string 和 int, float double long数据类型的转换
- 使用检查数据(int,double,float等)溢出,并抛出异常
- 常用的数据类型(int/char/float/double)