一般的浮点数不能利用==比较,利用a>=123.4可以进行比较,在我的程序中可以正确比较,试试最简单的控制台程序!
解决方案 »
- windows下,什么工具能捕获127.0.0.1 数据包
- 实时显示 BitBlt函数太慢
- 关于屏幕闪动的问题
- JPEG decode&encode
- 我遇到了一些变态问题,不知如何解决?大虾来帮帮我吧?
- 如何指定float 型的精度,比如要指定两位
- 如何把ATL工程从"自定义"类型改为"支持双接口"?
- 用WinMain()还是MFC ??
- SetTimer不生效,回调函数不执行
- 关于COleVariant和CString之间的一个怪问题,谨以此贴献给曾经奇怪,正在奇怪,和将来不想奇怪的各位兄弟!!!
- 已经有了程序,如何生成exe文件,独立出来?
- 怎么把字符串"111.111.111.111"转换成程序用的IP值
不过都不=123。4
>=應該可以的.然後轉換成String就可以用==判斷了
用二进制表示的小数许多是无法精确表示的,当然4Byte表示的小数将比2Byte表示的更精确。
实际上即使有十进制的计算机也会出现这种问题,举个例子:
我们知道 1/3 + 1/3 + 1/3 = 1;
1/3 = 0.3333333... 但实际上只能用有限个小数表示这个无穷循环小数,所以有限位表示的小数0.333333+0.333333+0.333333 != 1因此在数学计算中,当要比较两个非整数是否相等时是用lxp981818提到类似的办法实现的,但必须取绝对值,如下:
fabs(a - b) < 0.000000001 (右值可随你对精度的要求而不同)