如果您指示J在默认精度名词上计算一个大的结果,那么您很快就会遇到这样的情况,即结果是无穷大的_。这是令人不快的,因为无穷大在数学上意味着什么。
当超过标准精度时,我如何指示J给出错误而不是无穷大?我可以在我的J安装中设置这一默认设置吗?
例如:
!1000x NB. Extended precision gives large finite result.
4023872600770937735437024339230039857193748642107146325437999104299385123986290205920442084869694048004799886101971960586316668729948085589013238296699445909974245040870737599188236277271887325197795059509952761208749754624970436014182780946464962910563938...
!1000 NB. Default precision claims infinity. I'd generally prefer an error.
_发布于 2015-03-10 09:46:33
我的目标是得到数学上正确的结果。我突然得出结论,我应该尽早失败,而不是像在Java中那样给出不正确的结果。我所要求的都是戴恩和埃尔斯韦克斯所涵盖的,他们应该得到所有的赞扬。
不过,有些观察可能有助于其他人进入J思维:
首先,我已经知道了扩展的精度文本,并意识到动词x:将整数转换为扩展精度。如果我想要数学上正确的结果,在默认情况下,我应该养成使用这些东西的习惯。
其次,我已经观察到动词,如并元i.,它返回超大型的结果而不是失败。这在J中很常见,我应该学会过滤我不想要的结果,而不是让我的程序总是出错。
https://stackoverflow.com/questions/28933201
复制相似问题