javascript中float怎么控制精度?

我记得float好象有个方法,可以根据参数控制精度,例如3.444444可以通过参数的值转换为小数点后保留多少位,不是四舍五入.... 我记得float好象有个方法,可以根据参数控制精度,例如3.444444可以通过参数的值转换为小数点后保留多少位,不是四舍五入. 展开
 我来答
崔师尊
推荐于2017-09-30 · TA获得超过9317个赞
知道大有可为答主
回答量:3387
采纳率:34%
帮助的人:1792万
展开全部

  javascript中的float运算精度的一些问题,下面是具体的说明。

  有人问到一个js问题:

    var i = 0.07; 
    var r = i*100; 
    alert(r);

  结果为什么是7.0000000000000001? 
        查了下资料,其实JavsScript中,变量在存储时并不区分number和float类型,而是统一按float存储。而javascript使用IEEE 754-2008 标准定义的64bit浮点格式存储number,按照IEEE 754的定义: http://en.wikipedia.org/wiki/IEEE_754-2008 
decimal64对应的整形部分长度为10,小数部分长度为16,所以默认的计算结果为“7.0000000000000001”,如最后一个小数为0,则取1作为有效数字标志。 

        类似地,可以想像,1/3的结果应该是0.3333333333333333。 
        那么如何校正这个值呢? 
        可以用以下方法: 
        一、parseInt 
        var r4=parseInt(i*100); 
        二、Math.round 
        var r2=Math.round((i*100)*1000)/1000; 
        以上两种方法都可以得到7 
        附全部测试代码: 

    <html> 
    <head> 
    <title>测试脚本</title> 
    <script language="JAVASCRIPT"> 
    function init() 
    { 
    var i = 0.07; 
    var r = i*100; 
    var r2=Math.round((i*100)*1000)/1000; 
    var r3 = eval(i*100); 
    var r4=parseInt(i*100); 
    var r5=parseFloat(i*100*1.0000); 
    var r6=(1/3); 
    alert(r); 
    alert("Math.round="+r2); 
    alert("eval="+r3); 
    alert("parseInt="+r4); 
    alert("parseFloat="+r5); 
    alert(""+r6); 
    } 
    </script> 
    </head> 
    <body onload="init();"> 
    </body> 
    </html>
梦冷凝
2012-07-24 · TA获得超过1568个赞
知道小有建树答主
回答量:1703
采纳率:25%
帮助的人:741万
展开全部
toFixed()方法会按照指定的小数返回数值的字符串表示。
var num = 10;
alert(num.toFixed(2));//10.00
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dahezi666
2012-07-24 · TA获得超过215个赞
知道答主
回答量:336
采纳率:13%
帮助的人:109万
展开全部
import java.text.DecimalFormat;
public class Test {
public static void main(String[] args) {
double num =3.444444;
DecimalFormat fmt = new DecimalFormat(".###");
System.out.println(fmt.format(num));
}
}
// 显示 : 3.444
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式