设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 4539|回复: 18
打印 上一主题 下一主题

[已经过期] RGSS3又一個坑娘的BUG

[复制链接]

Lv2.观梦者

梦石
0
星屑
480
在线时间
177 小时
注册时间
2006-10-3
帖子
618
跳转到指定楼层
1
发表于 2014-4-3 09:49:38 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
i=1.0
i-=0.1
i-=0.1
i-=0.1
i-=0.1
i-=0.1
i-=0.1
i-=0.1
i-=0.1
i-=0.1
p i

以上的腳本在RMVX得出0.1,而RMACE上卻得出0.10000000000000014這樣的腦殘數值。。

而一個遊戲裏 判斷 當 i>0.1時才遞減,但是由於RMACE的腦殘數值,結果運算結果不正常!

点评

你写成i>0.1,C++会出这个错误,也不是常识,不要用你的误解误导别人。见我下面10楼的回复。  发表于 2014-4-6 13:09
C++不會出這個錯誤這是常識,RUBY不會出這個錯誤這也是常識,偏偏RGSS3就會出這個錯誤這是常識?  发表于 2014-4-4 12:05
“ 晴兰 + 20 写出i>0.1是常识问题不是bug” 我是說浮點數精度丟失BUG才導致出錯,VX不會出錯也是常識問題?ACE會出錯這就是常識?  发表于 2014-4-4 12:00

评分

参与人数 1星屑 +40 收起 理由
晴兰 + 40 常识是浮点比较写成i>0.1+eps,eps可以取1e.

查看全部评分

在我初学RM的时候觉得脚本是高手的工具,等我学会了编程技术后才发现脚本原来是小孩子的玩具。

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4504
在线时间
5228 小时
注册时间
2009-4-29
帖子
14318

贵宾

2
发表于 2014-4-3 10:14:15 | 只看该作者
每自减一次就msgbox一次,看看哪一步出错

点评

第四行就出错了,ACE里i变成了0.7000000000000001,多出个0.0000000000000001  发表于 2014-4-3 19:31
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
1
星屑
8946
在线时间
4371 小时
注册时间
2005-10-22
帖子
6752

开拓者贵宾

3
发表于 2014-4-3 11:48:03 | 只看该作者

VX到VA完成了一次计算机科学回到解放前的革命么~\(≧▽≦)/~

点评

幸好RMlinkSZK的模版工程是選用VX的,否則肯定悲劇  发表于 2014-4-3 19:34
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4504
在线时间
5228 小时
注册时间
2009-4-29
帖子
14318

贵宾

4
发表于 2014-4-3 20:11:37 | 只看该作者
i = 1.0
i -= 0.1
i = (i * 10).round / 10.0
每次自减都做这三步吧
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

5
发表于 2014-4-3 20:36:18 | 只看该作者
自己 round 呗。浮点数也是取近似值,精度一般用不到那么高,直接用整型得了。

点评

这不脑残,0.1是二进制的无限循环小数。就跟我们用0.33333333有限个3表示1/3差不多。  发表于 2014-4-6 13:13
精度如果是乘法除法確實是近似,但是連減去0.1都會導致RGSS3的浮點精度丟失就有點腦殘了  发表于 2014-4-4 11:54

评分

参与人数 1星屑 +50 收起 理由
怪蜀黍 + 50 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

唯一的信徒

梦石
0
星屑
1665
在线时间
1357 小时
注册时间
2013-1-29
帖子
1637
6
发表于 2014-4-3 22:45:14 | 只看该作者
论为什么不应该进行大量浮点数运算
『我只是一个正在潜心修炼的渣乐师罢了』
Dear Time\(^o^)/~


假如上面的图片挂了的话麻烦各位去发个帖 @ 一下 orzFly 让他修复 deartime
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
112
在线时间
551 小时
注册时间
2012-8-18
帖子
1429
7
发表于 2014-4-4 12:39:38 | 只看该作者
RGE问题比这还严重……
设计的时候避免就好了啦,以前精度各种丢的时候不还是一样该做做←←
我要填坑!我要背单词!我要学日语!我要每天锻炼!
好吧呵呵= =
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
39674
在线时间
7485 小时
注册时间
2009-7-6
帖子
13483

开拓者贵宾

8
发表于 2014-4-4 12:50:51 | 只看该作者
运算的时候尽量别用浮点,取结果的时候再取,比如你这里可以改成
  1. i=10
  2. p i.to_f/10
  3. i-=1
  4. p i.to_f/10
  5. i-=1
  6. p i.to_f/10
  7. i-=1
  8. p i.to_f/10
  9. i-=1
  10. p i.to_f/10
  11. i-=1
  12. p i.to_f/10
  13. i-=1
  14. p i.to_f/10
  15. i-=1
  16. p i.to_f/10
  17. i-=1
  18. p i.to_f/10
  19. i-=1
  20. p i.to_f/10
复制代码

评分

参与人数 1星屑 +50 收起 理由
怪蜀黍 + 50 认可答案

查看全部评分

RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9275
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

9
发表于 2014-4-4 21:22:12 | 只看该作者
笨方法= =把小数扩大10*N倍···计算完再缩回去···

点评

话说有时人物自动向上走是不是也算BUG呢  发表于 2014-4-6 06:54
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

10
发表于 2014-4-6 12:58:34 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-27 23:09

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表