+ -
当前位置:首页 → 问答吧 → 怎么判断float数据是一个负数??

怎么判断float数据是一个负数??

时间:2011-12-08

来源:互联网

float a = float(rand()%100);
float b = 50 - a;

请问怎么判断b小于0?

作者: weiwuyuan   发布时间: 2011-12-08

if (b < 0)
  NULL;

作者: vichare   发布时间: 2011-12-08

你去算一下:
float a = 4.4400072 - 4.4400001;
结果是多少。

作者: weiwuyuan   发布时间: 2011-12-08

引用 2 楼 weiwuyuan 的回复:

你去算一下:
float a = 4.4400072 - 4.4400001;
结果是多少。


楼主,浮点数是有精度的,单精度的float最多能达到7为有效数字

作者: mougaidong   发布时间: 2011-12-08

引用 3 楼 mougaidong 的回复:
引用 2 楼 weiwuyuan 的回复:

你去算一下:
float a = 4.4400072 - 4.4400001;
结果是多少。


楼主,浮点数是有精度的,单精度的float最多能达到7为有效数字


我当然不知道操作数实际有多少位,我只知道我最初给的都是float类型数据。
而我要问的,也正是,怎么判断他的运算结果是负数???

作者: weiwuyuan   发布时间: 2011-12-08

引用 4 楼 weiwuyuan 的回复:
引用 3 楼 mougaidong 的回复:
引用 2 楼 weiwuyuan 的回复:

你去算一下:
float a = 4.4400072 - 4.4400001;
结果是多少。


楼主,浮点数是有精度的,单精度的float最多能达到7为有效数字


我当然不知道操作数实际有多少位,我只知道我最初给的都是float类型数据。
而我要问的,也正是,怎么判断他的运算结果……


1、float小数点后有效数字是6位
2、float a 已经决定了 50 - a的有效位不会超过6

作者: iblold   发布时间: 2011-12-08

引用 5 楼 iblold 的回复:
引用 4 楼 weiwuyuan 的回复:
引用 3 楼 mougaidong 的回复:
引用 2 楼 weiwuyuan 的回复:

你去算一下:
float a = 4.4400072 - 4.4400001;
结果是多少。


楼主,浮点数是有精度的,单精度的float最多能达到7为有效数字


我当然不知道操作数实际有多少位,我只知道我最初给的都是float类型数据……


请问result的结果是多少?
float a = 4.4400072f;
float b = 4.4400001f;

float result = a - b;

作者: weiwuyuan   发布时间: 2011-12-08

引用 4 楼 weiwuyuan 的回复:

引用 3 楼 mougaidong 的回复:
引用 2 楼 weiwuyuan 的回复:

你去算一下:
float a = 4.4400072 - 4.4400001;
结果是多少。


楼主,浮点数是有精度的,单精度的float最多能达到7为有效数字


我当然不知道操作数实际有多少位,我只知道我最初给的都是float类型数据。
而我要问的,也正是,怎么判断他的运算结……


我的意思是告诉你,在莫某种意义上是判断不出正负的,可以跟有效数字 0.000001 进行比较。

作者: mougaidong   发布时间: 2011-12-08

引用 6 楼 weiwuyuan 的回复:

引用 5 楼 iblold 的回复:
引用 4 楼 weiwuyuan 的回复:
引用 3 楼 mougaidong 的回复:
引用 2 楼 weiwuyuan 的回复:

你去算一下:
float a = 4.4400072 - 4.4400001;
结果是多少。
楼主,浮点数是有精度的,单精度的float最多能达到7为有效数字


我当然不知道操作数实际有多少位……


result = -7.15256e-006
如果你需要更高的精度,请用double;如果double还不够,请自己写高精度类型;如果你希望float能存储任意精度数字,请醒过来

作者: vichare   发布时间: 2011-12-08