math.trunc() 返回带小数的值
Posted
技术标签:
【中文标题】math.trunc() 返回带小数的值【英文标题】:math.trunc() returning values with decimals 【发布时间】:2021-12-20 22:44:40 【问题描述】:任务
第一世纪从 1 年到 100 年,包括 100 年,第二个世纪 - 从 101 年到 200 年,以此类推。
给定一年,返回它所在的世纪。但是,对于 else if 块,它返回19.64
,而不是20
。这条线有什么问题?
const onCenturyCrossover = function (year)
return year % 2 === 0;
;
const century = function (year)
if (onCenturyCrossover(year) === true)
return year / 100;
else if (onCenturyCrossover(year) === false)
return Math.trunc(year / 100) + 1;
;
console.log(century(2000));
console.log(century(1964));
【问题讨论】:
是什么让可被 2 整除的年份成为“世纪交叉”? 具体来说:1964 可以被 2 整除,所以onCenturyCrossover()
将返回 true
。因此,1964 / 100 没有应用任何.trunc()
将是19.64
。
也不要像这样明确比较true
和false
。您的函数只需要调用一次;如果结果不是true
',那么它必须是false
。 if
语句已经知道如何使用布尔值,因此不需要显式比较。
啊,是的。所有必须改变的只是从第 2 年到第 100 年我的坏。真/假位只是为了我的可读性,还是新的!感谢朋友的帮助
【参考方案1】:
const Century = year => Math.floor(year/100) + 1;
【讨论】:
以上是关于math.trunc() 返回带小数的值的主要内容,如果未能解决你的问题,请参考以下文章