今日は問題に悩まされました。ブラウザ上では正常に動作するページがありますが、WebView では問題が発生します。必ず問題になる計算が 2 つあります。そこでalertを使ってこの値を表示させてみたところ、ブラウザ上で計算した結果とは大きく異なり、本来は正の値だったのですが、負の値になってしまいました。注意深く比較した結果、数値の一部が消去されており、これらの数値は parseInt を通じて文字列から変換されたことが判明しました。消去された値と他の通常の数値の唯一の違いは、「04903」のようにすべて 0 から始まるのに対し、他の値は「90874」であることです。この場合、理由は明らかです。WebView でサポートされている JavaScript parseInt は、0 で始まるすべての文字列を 0 に変換します。問題が解決されれば、parseInt を置き換える str2Int メソッドを記述するだけで簡単になります。
[javascript]
str2Int:function(str){
str = str.replace(/^0+/g, '');
if(str.length == 0){
return 0; return parseInt(str);
}
str2Int:function(str){
}
return parseInt(str);