2014-02-27 44 views
-1

我有一個函數fnAvg,它產生一個浮點數,我想show,直到我嘗試使用printf格式化爲止。我希望得到1DP,看着我周圍使用「%.1F」和printf到那裏:Haskell PrintF格式

show (printf "%.1f" fnAvg film)

我沒有得到任何實例(PrintFArg膜)。

我試着移動括號,或使其成爲show (printf "%.1f" (fnAvg Film)),但是這也導致沒有出現實例錯誤。我犯了一個錯誤,還是一個簡單的格式問題?

編輯:

的原因顯示的是,這是一個更大的列表的一部分:

[... ++ printf "%.1f" (show (fnAvg film)) ]

我想出了上面的語法,但它輸出PrintF.printf錯誤的參數錯誤。

+0

一個想法,我在外面使用printf而不是show? – Chillo

+1

我不認爲這裏有任何需要展示。 – thumphries

+0

它是一個更大的函數的一部分,它放在一個列表中,因此它需要字符串值。 – Chillo

回答

3

你原來的版本有外來show,是通過fnArgfilm作爲兩個獨立的參數printfprintf有一個奇怪的系統來支持可變參數,所以這就是爲什麼你有一個奇怪的錯誤。

你的第二個版本,試圖showfloat,從而導致通過String類型的變量爲0.1f格式,也不管用。

+0

感謝您的解釋! – Chillo

2

printf正在等待一個參數,但您已經給出了兩個參數。另外,show在這裏沒有必要。

也許你想要printf "%.1f" (fnAvg film)

+0

這不是'PrintFArg Film沒有實例'的原因,如錯誤 –

+0

謝謝,現在解決它。電影是fnAvg的論據。 – Chillo

+1

是的,對不起初步答案 - 很明顯,一旦提供了額外的上下文! – thumphries