オーバーフローが21.47mと聞いて 

2の乗数で似た数字探したら
2^31が2,147,483,648だった

100倍違うけど、実は小数点2桁まであって100倍値で計算してたらありえそう。。

31乗ってのも、符号付32bit(4byte)と考えると納得だし🤔

Follow

オーバーフローが21.47mと聞いて 

@mameta0824
長文失礼します!

多分ですけどダメージは整数でしか計算してないので1 / 100が最大値になるんだと思います。

例)ダメージ倍率123%のスキル

計算式=攻撃力 × 123 ÷ 100

となっていて、計算途中の
攻撃力 × 123
で2.147Gを超えてしまうと
その時点でオーバーフローが発生しダメージがなくなってしまう
(実際はダメージがマイナスになっている)

逆に、
攻撃力 × 123
で2.147Gを超えていないと
その後に ÷ 100 の部分が計算されるので
ダメージは21.47M以下になってしまう

こんな感じだと思います

· · Web · 0 · 0 · 0
Sign in to participate in the conversation
RO丼 - RO Mastodon

ラグナロクオンラインユーザ向けのMastodonインスタンス。