Swift中整数运算创建浮点数的正确方式?小数显示为0问题排查
问题解决:浮点数创建导致显示0的问题
你的问题根源在于整数除法的特性:代码里的minute/1440是两个整数相除,Swift会直接舍弃小数部分返回整数结果。因为一天最多1439分钟,所以不管当前分钟是多少,minute/1440的结果都是0,转成Float后自然是0.0,最终显示就是0。
正确的处理方式
只需要把除法操作改成浮点除法即可,有两种简单的实现方式:
- 将其中一个操作数转为浮点数后再计算:
let minute = Calendar.current.component(.minute, from: Date()) let JDminute = Float(minute) / 1440.0
- 或者将两个操作数都转为浮点数:
let JDminute = Float(minute) / Float(1440)
这样计算出来的结果会保留小数部分,比如当前分钟为30时,结果是0.02083,后续用你提供的两种显示方式都能正确输出带小数的数值。
另外,如果你的turnintoJulian函数内部也存在类似的整数除法操作,同样需要修改为浮点除法,才能确保返回的数值是正确的小数。
内容的提问来源于stack exchange,提问作者Matte.Car
相关产品推荐
相关产品推荐

