如何防止Javascript中的double / float变量截断

时间:2014-09-17 19:27:08

标签: c# javascript jquery truncate

这可能是一个简单的答案,但我还没弄清楚如何做到这一点。 我有一个javascript函数,它接受鼠标位置并将其传递给asmx页面,以便它可以处理它并将x和y转换为纬度/经度。但我确实需要鼠标位置的准确性。由于某种原因,当Web服务到达它时,它被截断到0小数位,我得到49.0,105.0。我需要像9.34536这样的确切位置。 104.345367。

我已经尝试toPrecision(),但如果我这样做,javascript甚至都不会执行

someMethod((e.pageX - posX).toPrecision(15), (e.pageY - posY).toPrecision(15));

以下是我正在使用的代码

<script>
        $(document).ready(function (e) {

            $(".someElement").hover(function (e) {
                var posX = $(this).position().left;
                var posY = $(this).position().top;
                someMethod((e.pageX - posX), (e.pageY - posY));
            });
        })

        function someMethod(xToUse, yToUse) {
            $.ajax({
                url: "aWebServiceURL.asmx/someMethod",
                type: 'POST',
                data: "x=" + xToUse + "&y=" + yToUse,
                dataType: "json",
                async: true,
                success: function iGotData(response, data) {
                    var resultingJSON = JSON.stringify(response);
                    $('#<%= aLabelOnTheScreen.ClientID %>').text(resultingJSON);


                },
                error: function (xhr, status, errorThrown) {
                    alert("Sorry, there was a problem!");
                    console.log("Error: " + errorThrown);
                    console.log("Status: " + status);
                    console.log(xhr);

                },

                // code to run regardless of success or failure

                complete: function (xhr, status) {
                  //  alert("The request is complete!");

                }


            });


        };
</script>

在C#中,方法定义是:

   public void someMethod(float x, float y)
{
}

更新:事实证明,我只是在Safari和Chrome中遭到截断。 Firefox和IE不是。

0 个答案:

没有答案