我正在写一个非常基本的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上,使用最新版本的移动版chrome和firefox,所有小数点后的数字都会四舍五入!因此,如果我输入“ 3.14 * 2 =“,我将得到“ 6”!

如何解决此问题?我查看了其他包含parseFloat的帖子,这些帖子均不起作用,而且都与该问题相似。
同样,两者都给出相似的结果:

1*getCurrentText();

parseFloat(getCurrentText(), 10);


一种选择是编写自己的parseFloat(我之前已经为微控制器完成了此操作!),但我真的不想那样做。

非常感谢。

最佳答案

你可以试试:

var t = 1.0 * getCurrentText();


浮动。

关于javascript - parseFloat在移动设备上不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36438586/

10-13 01:46