首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的电脑变傻了。0+ 20 =19.921875!帮帮我!

我的电脑变傻了。0+ 20 =19.921875!帮帮我!
EN

Stack Overflow用户
提问于 2010-07-31 00:35:52
回答 5查看 422关注 0票数 8

当你的电脑不能计算正确的总和时,你就知道这是错误的!

我完全不知道为什么会发生这样的事情:

代码语言:javascript
复制
_root.attachMovie("clippy","aClip",_root.getNextHighestDepth());

trace("alpha 1 = "+aClip._alpha);
aClip._alpha = 0;
trace("alpha 2 = "+aClip._alpha);
aClip._alpha += 20;
trace("alpha 3 = "+aClip._alpha);
aClip._alpha = 20;
trace("alpha 4 = "+aClip._alpha);

输出为:

代码语言:javascript
复制
alpha 1 = 100
alpha 2 = 0
alpha 3 = 19.921875
alpha 4 = 19.921875

19.921875应该是20!:(

我要哭了。我的处理器有癌症吗?阿尔茨海默病?谁说计算机不会出错?

附注:我也使用了aClip._alpha=Math.round(aClip._alpha),但是跟踪是一样的!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-07-31 01:00:29

_alpha值存储为一个字节(我应该说是8位-从0255的整数值)

设置_alpha值时,使用百分比。当您检索它时,它会生成百分比的精确十进制表示。

代码语言:javascript
复制
aClip._alpha = 20;

25620%51.2,因为它被存储为一个整数,所以它将被51

然后,

51 / 256 * 100是Flash将其返回给你的方式,也就是19.921875

票数 23
EN

Stack Overflow用户

发布于 2010-07-31 00:59:41

四舍五入似乎

票数 1
EN

Stack Overflow用户

发布于 2010-07-31 00:39:48

如果我没记错的话,flash在内部存储alpha的时候会有一些奇怪的疯狂的值,比如0..240 (我不认为是255)。会不会是20等于20%,经过四舍五入后,19.92是转换回百分比后的最接近的值?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3373532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档