string - 如何在 F# 中使用 printf/sprintf 将十进制格式化为具有定义精度的字符串?

标签 string f# format printf decimal

我想在 F# 中将十进制值格式化为具有定义精度的字符串。使用 printf/sprintf 时,我得到:

let sdecimal = sprintf "%.2M" 0.1234M;;

val sdecimal : string = "0.1234"



而对于 float 它的工作原理。
let sfloat = sprintf "%.2f" 0.1234;;

val sfloat : string = "0.12"



似乎我必须先将它转换为浮点,这既冗长又不符合犹太教规。

有没有比使用 C# 的 .ToString() 格式更简单的方法?

最佳答案

好的。如果格式是 float 的,它会起作用:

let sfdecimal = sprintf "%.2f" 0.1234M;;

val sfdecimal : string = "0.12"



正如@ scrwtp 在评论中指出的那样,类型信息仍然保留。 .

关于string - 如何在 F# 中使用 printf/sprintf 将十进制格式化为具有定义精度的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36521696/

相关文章:

f# - 即使有多个不同的递归调用,也可以针对尾递归优化函数吗?

eclipse - 如何在 Eclipse 中自动格式化代码?

lisp - format - 帮助打印表格

macos - 如何在 macbook 上打开 .avsc 文件

python URL处理问题

python - 反转 Pandas 子集数据框中的字符串列

f# - F#中的字典排序

f# - Action 和 unit -> F# 中的 unit 类型之间的重载解析不明确

c - 如何在 C 中使用 strstr() 计算另一个文件中的关键字?

string - 如何找到最长的不重复字符的子串?