所以我有这个问题:我正在使用向量中的每个元素进行计算.根据向量中的数字,结果向量可能包含有理数,浮点数,科学浮点数,大整数,整数.我需要将它们全部转换为浮点数或舍入整数.生成的文本是一个SVG,将发送给客户端,这些数字是路径的一部分.我可以用内置的东西来做,还是应该自己动手?
格式问题是它是java Formatter类的一个瘦包装器.这意味着由于clojure有自己的实现,因此不会处理大的int.
另一方面,cl格式(实际上应该是主要选择)格式化除了有理数之外的一切 - 4/5转换为4/5.0.也许我在使用cl-format做错了.
我尝试将整个向量(无论如何都需要)的类型暗示为双倍,但结果仍然作为有理数返回.
如果我错过了什么,请帮忙.
转换数据类型不是格式化程序的工作,在将数据交给格式化程序之前,应确保数据具有要打印的类型.
类型提示不是类型转换或强制,它是编译器关于args最有可能在运行时进入的提示.
你想要的功能是double.
user=> (double 42)
42.0
user=> (map double [1.0 1 1.1M 2/3])
(1.0 1.0 1.1 0.6666666666666667)
Run Code Online (Sandbox Code Playgroud)
此外,如果您是键入提示整个矢量,您不应该使用矢量,您应该使用 double-array.矢量不以其内容类型的任何方式专门化.