String Haskell printf到字符串

String Haskell printf到字符串,string,haskell,String,Haskell,Haskell中是否有sprintf的等价物 我需要将双精度值转换并格式化为字符串 有没有其他不使用printf类函数的方法 主要问题是要避免: Prelude> putStrLn myDoubleVal 1.7944444444444447e-2 相反,我想要这个: Prelude> putStrLn . sprintf "%.2f" $ myDoubleVal 1.79 可能就是您所需要的。是的,它在模块中,它被称为printf > import Text.Printf

Haskell中是否有sprintf的等价物

我需要将双精度值转换并格式化为字符串

有没有其他不使用printf类函数的方法

主要问题是要避免:

Prelude> putStrLn myDoubleVal
1.7944444444444447e-2
相反,我想要这个:

Prelude> putStrLn . sprintf "%.2f" $ myDoubleVal
1.79
可能就是您所需要的。

是的,它在模块中,它被称为
printf

> import Text.Printf
> let x = 1.14907259
> putStrLn . printf "%.2f" $ x
1.15
请注意,
printf
的返回类型是重载的,因此它能够返回
字符串
(如上面的示例所示),但它也能够返回执行打印的I/O操作,因此实际上不需要调用
putStrLn

> printf "%.2f\n" x
1.15

选中,我不知道它使用相同的函数同时打印IO和字符串。@Zhen可能对类型安全的版本感兴趣:例如format(str.“-”.str.“/”.int)“Hello!”“World!”123如果您喜欢比
printf
提供的类型安全性多一点,还有一些函数。我认为
show*Float
很好,但对我来说太过分了。在真正的应用程序中,我使用它(打印CSV)最好使用printf。