私は非常に基本的なhtml電卓を書いています。最終結果とユーザー入力は、以下の「textDisplay_」領域に表示されます。
<div id ="textDisplayRow_">
<div id = "textDisplay_" class = "calcTextDisplay">0.0</div>
</div>
これらの関数を使用して、表示された値を取得してフロートに解析する JavaScript コードもあります。
function getCurrentText() {
"use strict";
return document.getElementById("textDisplay_").innerHTML;
}
function getDisplayedNum() {
"use strict";
if (getCurrentText() === emptyMesg) {
return maxSafeInt;
}
var t = 1*getCurrentText();
//var t = parseFloat(getCurrentText(), 10);
if ((isNaN(t)) || (t === undefined)) {
return 0;
} else {
return t;
}
}
このコードは、デスクトップ ブラウザーで美しく動作します (Chrome、FireFox、および IE でテストしました)。それらはすべて適切に表示され、3.14*2 と入力して「=」を押すと、6.28 が返されます。
ただし、私のAndroid 4では、最新バージョンのモバイルクロムとFirefoxを使用すると、すべての10進数が切り捨てられます! なので「3.14*2=」を打ち込むと「6」になります!
この問題を解決するにはどうすればよいですか? parseFloat が機能しないことを含む他の投稿を見てきましたが、この問題に似たものはありません。また、両方とも同様の結果が得られます。
1*getCurrentText();
parseFloat(getCurrentText(), 10);
1 つのオプションは、独自の parseFloat を作成することです (私は以前にマイクロ コントローラーに対してこれを実行しました!)。
よろしくお願いします。