Angular中上界与下界如何计算?现有代码需返回上限值
在Angular中实现数值的上界(向上取整)计算
问题分析
你现有代码的逻辑存在错误:当yearClassCount > 10时,yearClassCount / 2 + (yearClassCount % 2)会输出非整数结果(比如11时返回6.5),且这并非正确的向上取整值。另外Math.trunc()仅截断小数部分,无法实现“取上限值”的需求。
正确实现方案
直接使用JavaScript原生的Math.ceil()方法,它会返回大于或等于目标数值的最小整数,完美匹配你的需求。修改后的代码如下:
yearClassColumns(yearClassCount: number) { return yearClassCount > 10 ? Math.ceil(yearClassCount / 2) : yearClassCount; } setCustomerColumns(numberOfYear: number) { return this.yearClassColumns(numberOfYear); }
调用示例
如果需要将结果赋值给numOfColumns,直接调用函数即可,无需额外处理:
this.numOfColumns = this.setCustomerColumns(numberOfYear);
效果验证
- 当
yearClassCount = 11:Math.ceil(11/2) = Math.ceil(5.5) = 6(正确的向上取整结果) - 当
yearClassCount = 12:Math.ceil(12/2) = 6 - 当
yearClassCount = 9:直接返回9
内容的提问来源于stack exchange,提问作者Chathura Jayawardhane
相关产品推荐
相关产品推荐

