前言...
因为一开始听说伤害破10亿时会出问题
所以才玩了一下艾得
结果发现显示出来的伤害少了一位 ( 请参阅 文章代码 #1KLAQVPy )
但是实际拿来计算时又觉得怪怪的
就一个数学背景出身的我 很不能接受这个奇怪的地方
所以才会追究这点
艾得的头上的数字是 725852736
http://imgur.com/6jbmvuF
打在光地精身上是 108877913
http://imgur.com/ZLuzUIX
让我们来计算一下 克属是1.5倍
725852736 * 1.5 = 1088779104
地精的防=14
1088779104 - 14 = 1088779090
就算最后一位没有显示 那也会是108877909
没道理变成108877913
后来在巴哈看到了这篇文章 http://ppt.cc/HZp8
数字分别是 991206464 148670976
一样来计算一下
991206464 * 1.5 = 1486809696
1486809696 - 100000 = 1486709696
很明显的又是后面几位出了问题
所以 可以知道MH在计算伤害时
用是一般的浮点数(float)在计算 所以才会出现这个误差
如果改成倍精度浮点数(double float) 可能会拖到程式的一些效率
SORRY 不懂的话可以去翻一下计概的书就知道了(咦
因为奥丁的倍率没有一个精确的公式
所以有兴趣研究的朋友 可以改用其他2倍攻的卡 ( 或者等我有空时再来测一下 )
只要伤害达8位数时 应该就会出现误差了