在Haskell中有没有sprintf的等价物?
我需要将双精度值转换并格式化为字符串。
有没有其他不使用printf类函数的方法?
主要问题是要避免:
Prelude> putStrLn myDoubleVal
1.7944444444444447e-2
相反,我想要的是:
Prelude> putStrLn . sprintf "%.2f" $ myDoubleVal
1.79
发布于 2013-03-22 17:03:08
是的,它在Text.Printf模块中,它就是printf
。
> import Text.Printf
> let x = 1.14907259
> putStrLn . printf "%.2f" $ x
1.15
注意,printf
的返回类型是重载的,因此它能够返回String
(如上面的示例所示),但它也能够返回执行打印的I/O操作,因此实际上不需要调用putStrLn
> printf "%.2f\n" x
1.15
发布于 2013-03-22 17:02:53
Text.Printf可能就是您需要的。
发布于 2022-01-04 03:49:15
如果你想要“”s“printf”并且不需要与printf样式完全兼容,Formatting是一个创建格式化字符串的选项。
https://stackoverflow.com/questions/15566299
复制相似问题