如何在FL#中将float转换为字符串。我正在寻找具有此签名的功能:
float -> string
答案 0 :(得分:24)
正如其他人所指出的,有一些选择。最简单的两种方法是调用ToString
方法并使用string
函数。你应该注意两者之间的细微差别。以下是他们在我的系统上所做的事情:
> sprintf "%f" 1.2;;
val it : string = "1.200000"
> string 1.2;;
val it : string = "1.2"
> 1.2.ToString();;
val it : string = "1,2"
前两个是不同的,但两者都有意义,但为什么最后一个返回“1,2”?
那是因为我有捷克语区域设置,其中小数点写为逗号(doh!)因此,string
函数使用不变文化,而ToString
使用当前文化(线程)。在一些奇怪的文化(如捷克:-)),这可能会导致麻烦!您也可以使用ToString
方法明确指定:
> 1.2.ToString(System.Globalization.CultureInfo.InvariantCulture);;
val it : string = "1.2"
因此,方法的选择可能取决于您希望如何使用字符串 - 对于演示文稿,您应该尊重操作系统设置,但是为了生成可移植文件,您可能需要不变的文化。
答案 1 :(得分:14)
> sprintf "%f";;
val it : (float -> string) = <fun:it@8>
答案 2 :(得分:8)
使用'string'功能。
string 6.3f
答案 3 :(得分:3)
string;;
val it : (obj -> string) = <fun:it@1>
答案 4 :(得分:2)
只是为了完善答案:
(fun (x:float) -> x.ToString())
:)