Idris,通过删除小数点(floor)从 Double 转换为 Nat
Idris, convert from a Double to a Nat by dropping the decimal points (floor)
在 Idris 中,如何通过 floor 将 Double 转换为 Nat,删除小数点。
我试过演员表:
cast {to=Nat} num
但是没有用。
When checking an application of function Main.takeLeftOfHalfLength:
Can't cast from Double to Nat
好吧,这是意料之中的,因为演员表的工作方式不是很明确,信息丢失。
不过我还是想从Double转Nat,请问有什么办法吗?
我发现了 divNat 函数,它可以让我划分一个 Nat,但我会把问题留在这里
我们可以使用 floor
,转换为 Integer
,然后使用 integerToNat
:
Main> integerToNat $ cast {to = Integer} $ floor 3.9
3
类似地,ceiling
可用于向上舍入 Nat
:
Main> integerToNat $ cast {to = Integer} $ ceiling 3.9
4
在 Idris 中,如何通过 floor 将 Double 转换为 Nat,删除小数点。 我试过演员表:
cast {to=Nat} num
但是没有用。
When checking an application of function Main.takeLeftOfHalfLength:
Can't cast from Double to Nat
好吧,这是意料之中的,因为演员表的工作方式不是很明确,信息丢失。
不过我还是想从Double转Nat,请问有什么办法吗?
我发现了 divNat 函数,它可以让我划分一个 Nat,但我会把问题留在这里
我们可以使用 floor
,转换为 Integer
,然后使用 integerToNat
:
Main> integerToNat $ cast {to = Integer} $ floor 3.9
3
类似地,ceiling
可用于向上舍入 Nat
:
Main> integerToNat $ cast {to = Integer} $ ceiling 3.9
4