猿问

parseFloat不适用于移动设备

我正在写一个非常基本的HTML计算器。最终结果和用户输入显示在下面的“textDisplay_”区域中:

<div id ="textDisplayRow_"> 
   <div id = "textDisplay_" class = "calcTextDisplay">0.0</div></div>

我还有一个JavaScript代码,使用这些函数获取并将显示的值解析为float:

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(我以前为微控制器做过这个!)但我真的不想那样做。

非常感谢提前。


烙印99
浏览 543回答 2
2回答

繁花如伊

你可以试试:var&nbsp;t&nbsp;=&nbsp;1.0&nbsp;*&nbsp;getCurrentText();获得一个浮动。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答