假设我有以下程序:
program derp
implicit none
integer, parameter :: ikind = selected_real_kind(18)
real (kind = ikind) :: a = 2.0 / 3.0
print*, a
end program derp
程序derp输出0.6666666865348815917,这显然不是18位数字的精度。但是,如果使用相同的方法定义a=2.0和b=3.0,然后定义c=a/b,则会得到0.666666666666666666685的输出,这是很好的。我如何将变量定义为整数的商
我正在通过Euler项目工作,以进一步提高我的编程技能。在重新查看问题3的代码后,我遇到了一个有趣的问题。下面是我的代码:
# prime numbers are only divisible by unity and themselves
# (1 is not considered a prime number by convention)
def isprime(n):
'''check if integer n is a prime'''
# make sure n is a positive integer
n
我知道Haskell有原生数据类型,允许你有非常大的整数,所以像这样的东西
>> let x = 131242358045284502395482305
>> x
131242358045284502395482305
按照预期工作。我想知道是否有类似的“大精度浮点”原生结构可以使用,比如
>> let x = 5.0000000000000000000000001
>> x
5.0000000000000000000000001
是有可能的。如果我在Haskell中输入它,如果我超过15位小数(双精度),它将被截断为5。