急问:gmp高精度库浮点数使用问题

aa__aa__aa__aa 2013-06-18 10:30:21
请问,gmp中的gmf_t高精度浮点数计算有问题
比如:3.14/5.789
gmp结果:0.5424080152012437381240283295906
windows自带计算器和Java中的大数处理函数计算出来是:0.5424080152012437381240283295906
gmp从小数点后17位就不准了
这是怎么回事,gmp不是号称最好的高精度库吗?怎么一个浮点数除都不准啊!
...全文
502 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
du51 2013-09-11
  • 打赏
  • 举报
回复
我想了一下,DOUBLE可以到小数点后15位-16位,为什么从17位开始不准确,可能与此有关。。 。。。并不是我骗积分。。。呵呵。。有7,8年没上了。。话都说不清了。。
du51 2013-09-11
  • 打赏
  • 举报
回复
我用自己写了一个试了下,如果中间用浮点数进行中间运算,结果是不确定的,如果用整数进行中间运算,结果是确定的。
du51 2013-09-11
  • 打赏
  • 举报
回复
计算器是准确的 0.54240801520124373812402832959060286750734150975988944550008637070305752288823631024356538262221454482639488685437899464501641043358092934876489894627742269822076351701502850233200898255311798238037657626533079979271031266194506823285541544308170668509241665227154949041285196061495940576956296424252893418552427016755916393159440317844187251684228709621696320608049749524961133183624114700293660390395577820003454828122300915529452409742615304888581793055795474175159785800656417343237173950595957851096907928830540680601140093280359302124719295215063050613231991708412506477802729314216617723268267403696666090861979616514078424598376230782518569701157367420970806702366557263776127137674900673691483848678528243219899809984453273449645880117464156158231128001381931248920366211780963897046121955432717222318189670063914320262566937294869580238383140438763171532216272240456037312143720849887718086025220245292796683365002591121091725686647089307306961478666436344791846605631369839350492313007427880462946968388322680946
FancyMouse 2013-06-18
  • 打赏
  • 举报
回复
调用gmp的代码呢。碰到这种问题一般都是你的代码有错而不是他们的代码有错。
aa__aa__aa__aa 2013-06-18
  • 打赏
  • 举报
回复
是我贴错了 请问,gmp中的gmf_t高精度浮点数计算有问题 比如:3.14/5.789 gmp结果:0.5424080152012437875651563769429 windows自带计算器和Java中的大数处理函数计算出来是:0.5424080152012437381240283295906 gmp从小数点后17位就不准了 这是怎么回事,gmp不是号称最好的高精度库吗?怎么一个浮点数除都不准啊!
fdl19881 2013-06-18
  • 打赏
  • 举报
回复
从你给出的结果中,是一样的啊。你仔细对比下,,
yaos 2013-06-18
  • 打赏
  • 举报
回复
中间行是PARI/GP的结果,该软件以GMP为计算内核 你的结果:0.5424 0801 5201 2437 8756 5156 3769 429 PARI/GP: 0.5424 0801 5201 2437 3812 4028 3296 计算器: 0.5424 0801 5201 2437 3812 4028 3295 906
yaos 2013-06-18
  • 打赏
  • 举报
回复
贴代码吧,没代码怎么说?

23,223

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧