首页 > 试题广场 >

与其他 IEEE 754 表示浮点数的编程语...

[单选题]
与其他 IEEE 754 表示浮点数的编程语言一样,JavaScript 的 number 存在精度问题,比如 0.2 + 0.4 的结果是 0.6000000000000001。以下选项中,能得到 0.6 的是?
  • parseFloat(0.2 + 0.4)
  • parseFloat((0.2 + 0.4).toFixed(1))
  • Math.round(0.2 + 0.4)
  • parseFloat((0.2 + 0.6).toPrecision(1))
  1. parseFloat 解析一个字符串,并返回一个浮点数
  2. toFixed 把数字转换为字符串,结果的小数点后有指定位数的数字
  3. Math.round 把一个数字舍入为最接近的整数
  4. toPrecision 把数字格式化为指定的长度
    选项 结果
    A 0.6000000000000001
    B 0.6
    C 1
    D 0.8

所以没有答案哈哈哈哈哈哈
-------------------------------------------------
20200216修改,现在有答案了,选B
编辑于 2020-02-16 22:23:11 回复(4)
D选项居然是0.2+0.6
好吧我输了。。。
发表于 2020-02-13 17:11:34 回复(9)
// parseFloat(),解析一个字符串,并返回一个浮点数。
// toFixed把数字转换为字符,结果的小数点后有指定位数的数字,按四舍五入取值
var num = new Number(15.7857);
var a = num.toFixed(); //16 无参数,表示小数点后面位数为0位,然后四舍五入
var b = num.toFixed(1);//15.8
var c = num.toFixed(3);//15.786
var d = num.toFixed(10);  //多出的补0

//toPrecision()把数字格式化为指定长度
var f = num.toPrecision();//15.7857,无参数,返回原数字
var g = num.toPrecision(1);//2e+1,参数小于整数部分位数,返回科学计数
var h = num.toPrecision(3);//15.8,也是有四舍五入
var i = num.toPrecision(10);//15.78570000,长度不够补0
发表于 2019-09-20 10:06:43 回复(1)
我竟然选了D?我眼睛不好使了,佛了佛了
发表于 2020-07-16 11:59:04 回复(0)
没有一个选项可以得到0.6
发表于 2018-12-21 16:56:11 回复(0)
这道题B,D得到的都是0.8
发表于 2018-12-19 16:17:32 回复(2)
parseFloat 解析一个字符串,如果B选项没有parseFloat将得到的是一个字符串;
把数字转换为字符串,结果的小数点后有指定位数的数字(指定的小数点后面的位数)
var num = new Number(15.675);
var a = num.toFixed();  //16;
var a = num.toFixed(1); //15.7;
var a = num.toFixed(2);  // 15.68
var a = num.toFixed(9);  //15.675000000
//把数字格式化为指定格式(指定的是有效位数)
var a = num.toPrecision(); //15.675
var a = num.toPrecision(1); // 返回一个科学计数;就是指定的长度为1;
var a = num.toPrecision(4); // 15.68;
var a = num.toPrecision(9); // 15.6750000
发表于 2021-11-23 14:40:57 回复(0)

辨析一下.
toFixed(1)转换为"定点数"(实数的一种表示法,与浮点数相对).
(0.01).toPrecision(1)转换为1位有效数字(输出0.01)
(100).toPrecision(1)输出1e+2.

四舍五入?这重要吗...一般都会有的.

发表于 2020-03-17 13:34:24 回复(0)


toFixed
把数字转换为字符串,结果的小数点后有指定位数的数字:
toPrecision把数字格式化为指定的长度:
toPrecision使用的时候应该有差别,比如说toPrecision(1):0.2+0.4--》0.6:1.2+0.2--》1
长度并不是从小数点以后计算的



编辑于 2019-09-17 21:28:16 回复(1)
var numObj = 12345.6789;
numObj.toFixed(); // 返回 "12346":进行四舍五入,不包括小数部分 
numObj.toFixed(1); // 返回 "12345.7":进行四舍五入
编辑于 2019-08-15 16:33:04 回复(0)
答案是B 0.6
发表于 2020-01-08 16:00:24 回复(0)
toFix()把数字转换为字符串,结果的小数点后有指定位数的数字:
toPrecision()把数字格式化为指定的长度:
发表于 2022-10-18 20:19:41 回复(0)
// parseFloat(),解析一个字符串,并返回一个浮点数。
// toFixed把数字转换为字符,结果的小数点后有指定位数的数字,按四舍五入取值
var num = new Number(15.7857);
var a = num.toFixed(); //16 无参数,表示小数点后面位数为0位,然后四舍五入
var b = num.toFixed(1);//15.8
var c = num.toFixed(3);//15.786
var d = num.toFixed(10);  //多出的补0

//toPrecision()把数字格式化为指定长度
var f = num.toPrecision();//15.7857,无参数,返回原数字
var g = num.toPrecision(1);//2e+1,参数小于整数部分位数,返回科学计数
var h = num.toPrecision(3);//15.8,也是有四舍五入
var i = num.toPrecision(10);//15.78570000,长度不够补0
发表于 2022-07-17 00:02:48 回复(0)
<p>toPrecision 转化为相应长度的字符串</p>
发表于 2020-11-19 17:23:18 回复(0)
<p>标答输出也是0.8,这个和计算精度有关系,计算机运算最终是2进制的运算,浮点位数限制导致的精度缺失,0.2+0.6这个浮点运算就是会得到0.8,这个问题网上有博客看到过..大家可以搜一下</p><p><br></p>
发表于 2020-08-20 21:40:30 回复(0)
1_m头像 1_m
牛逼,阅读理解题
发表于 2020-04-14 16:40:02 回复(0)

是不是答案有问题还是题有问题?



发表于 2019-12-10 18:11:35 回复(0)
这是没有正确答案吧
发表于 2019-11-05 17:37:13 回复(0)
答案是0.6,怎么这么多0.8啊
发表于 2019-09-26 19:54:17 回复(0)
答案也输不出0.6呀。。
发表于 2019-08-20 19:37:33 回复(0)