免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: jiujiujiu338
打印 上一主题 下一主题

处理分数 [复制链接]

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
11 [报告]
发表于 2011-10-13 21:39 |只看该作者
回复  zhlong8

>>另外楼上在不靠谱的路上越走越远了

我知道不一定靠谱....(但能解决一些问题....)
...
jason680 发表于 2011-10-13 13:54



    首先 $a != $b 然后 $a*3 == $b*3 你间接证明了浮点数乘法也是靠不住的。其实我只想说浮点数通常情况下比较相等没多大意义,楼主思路有问题。

    你和那几位试图暴力解决这个问题,我认为应该从数学角度考虑浮点数精度带来的问题和哪些运算是安全的方面来入手

论坛徽章:
0
12 [报告]
发表于 2011-10-13 22:35 |只看该作者
  1. #!perl

  2. use strict;
  3. use warnings;

  4. # 设定精度要求
  5. my $ignore_min_value = 0.0000001;

  6. if ( (10/3 - ((1/3)*10)) < $ignore_min_value) {
  7.     print "success!";
  8. }
  9. else {
  10.     print "failure!";
  11. }
复制代码

论坛徽章:
78
双子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06狮子座
日期:2013-10-18 13:40:31双子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56处女座
日期:2013-10-24 17:15:30双子座
日期:2013-10-25 13:49:39午马
日期:2013-10-28 15:02:15
13 [报告]
发表于 2011-10-14 09:52 |只看该作者
  1. # equal(NUM1, NUM2, PRECISION) : returns true if NUM1 and NUM2 are
  2. # equal to PRECISION number of decimal places
  3. sub equal {
  4.     my ($A, $B, $dp) = @_;
  5.     return sprintf("%.${dp}g", $A) eq sprintf("%.${dp}g", $B);
  6.   }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP