青空の月

PHP, Unity, C#, アプリ開発関連について。

外部のアセット、ライブラリは要注意

Unityのアセットとか便利だけど落とし穴もある。

 

アセットは汎用的というか自分のプロジェクト用に作られていないので変数のデータ型とかが用途と合っていない場合が出てくる。

 

このスクリプトを実行するとどうなるか。

処理の内容としては、string型の数値をfloat -> doubleにして文字型で比較する。

 

 

 

16777217あたりから一致したり、しなかったりする値が出てくる。

f:id:masa795:20130824164727j:plain

 

float型のせいなので直接doubleにするとログが出力されなくなる。

でもdoubleであってもいつかは同じように限界が来る。

 

こんなデータ型変換する処理は書かないと思うけど、アセットとかではやっている可能性がある。

サーバー側のDBではbigintとか用意していてもクライアントで値がずれて不整合が起きてしまう。まぁリリース前にちゃんとチェックしろという事ですね。