就近取整
跳转到导航
跳转到搜索
由于《明日方舟》使用Unity引擎编写,其有多处使用了Unity核心库中的Mathf结构函数对小数(浮点数,Float类型)进行取整处理,包括:
- Mathf.Floor(x) 向下取整(返回小于等于x的最大整数)
- Mathf.Ceil(x) 向上取整(返回大于等于x的最小整数)
- Mathf.Round(x) 就近取整
其中“就近取整”并非常见的“四舍五入”,而是“四舍六入五成双”(采用.NET中的MidpointRounding.ToEven规则)。
对于x的小数部分xf(此时0≤xf<1):
- 当 xf>0.5 时,x向上取整。
- 例:7.6 → 8,9.72 → 10
- 当 xf<0.5 时,x向下取整。
- 例:7.4 → 7,4.4999 → 4
- 当 xf=0.5 时,返回x两边整数中的偶数
- 例:7.5 → 8,6.5 → 6,1999.5 → 2000
当站内提及“就近取整”时,通常就指的是这样的取整方式。
例如:在集成战略探索者的银凇止境中,将所有文化比较研究完成后可以令干员在高难度(9+)情况下获得累积+23%的攻击力与防御力加成,该加成以符文的形式写入。
已知,符文加成后干员的数据将就近取整,则:
- 招募1星干员THRM-EX(30级,满信赖)的情况下,其原本攻击力为350。
- 加成后,攻击力变为430(350 × 1.23 = 430.5 → 430)。
- 招募2星干员12F(30级)的情况下,其原本防御力为50。
- 加成后,防御力变为62(50 × 1.23 = 61.5 → 62)。