问题描述
我正在研究一个“创意”算法,在某些情况下我需要返回负值 Nan
。
extension Decimal {
func placement(
between gains: Decimal,and losses: Decimal
) -> Decimal {
if gains == losses {
return self > gains ? (1 / 0) : (-1 / 0)
}
return (self - losses) / (gains - losses)
}
}
不幸的是 (-1 / 0)
产生了 Nan 而不是 -Nan
。
我之前不小心创建了 -Nan
,不幸的是,我不记得它是怎么发生的。
解决方法
当某事物字面上“不是数字”时,它怎么会有一个有意义的符号?
而且,从实践的角度来看,您希望如何区分“负 NaN”和“NaN”? django_heroku.config(locals())
DATABASES['default']['CONN_MAX_AGE'] = 0
为真,以及 Decimal.nan == -Decimal.nan
和 Decimal.nan < 0
-Decimal.nan < 0
,
print(-Double.nan) // produces -nan
print(-Decimal.nan) // produces Nan
我认为 Decimal 可能无法跟踪签名的 nan。它不区分正负 nan,但如果是负 nan,isNan
将产生 true。