我有一个函数fnAvg
生成一个浮点数,我希望show
,直到我尝试使用printf格式化它。我想得到1dp,环顾四周我用“%.1f”和printf来到那里:
show ( printf "%.1f" fnAvg film)
我没有(PrintFArg电影)的实例。
我尝试移动方括号,或者将其show (printf "%.1f" (fnAvg Film))
移动,但这也导致show也没有出现实例错误。我犯了错误还是简单的格式化问题?
编辑:
该节目的原因是它是一个更大的列表的一部分:
[... ++ printf "%.1f" (show (fnAvg film)) ]
我想出了上面的语法,但它输出了一个PrintF.printf错误的参数错误。
答案 0 :(得分:3)
您的原始版本有一个无关的show
,并且正在将fnArg
和film
作为两个单独的参数传递给printf
。 printf
有一个奇怪的系统来支持变量参数,这就是你得到奇怪错误的原因。
您的第二个版本尝试show
float
,这导致将String
类型的变量传递为0.1f
格式,这也不起作用。
答案 1 :(得分:2)
printf
期待一个论点,但你已经给了它两个。此外,此处不需要show
。
也许你想要printf "%.1f" (fnAvg film)
?