如何格式化字符串以使用 F# 在文件中打印
How to format strings to print in a file with F#
此代码在文件中以这种格式打印浮点数 f,ffffff(带逗号)并且数字是连续的,但我需要这样打印f.ffffff(带点)并且在每个数字后跳过一行,因此每个数字都有自己的行。关于我该怎么做的任何想法?
代码已编辑
module writeFiles =
let (w:float[]) = [|-1.3231725; 1.052134922; 1.23082055; 1.457748868; -0.3481141253; -0.06886428466; -1.473392229; 0.1103078722; -1.047231857; -2.641890652; -1.335060286; -0.9839854216; 0.1844535984; 3.087001584; -0.008467130841; 1.175365466; 1.637297522; 5.557832631; -0.2906445452; -0.4052301538; 1.766454088; -2.604325471; -1.807107036; -2.471407376; -2.204730614;|]
let write secfilePath=
for j in 0 .. 24 do
let z = w.[j].ToString()
File.AppendAllText(secfilePath, z)
//File.AppendAllLines(secfilePath, z)
done
有几件事可以在您的代码中做得更好。
- 每次添加数字时,您都在一遍又一遍地打开文件
z
不需要可变
- 您可以将格式模式 and/or 文化传递给
ToString
调用
- 您可以迭代
filterMod.y
而不是 for
循环和数组索引器访问
我可能会选择更像
的东西
module writeFiles =
let write secfilePath=
let data = filterMod.y
|> Array.map (fun x -> x.ToString(CultureInfo.InvariantCulture))
File.AppendAllLines(secfilePath, data)
它准备了一个字符串数组,其中 filterMod.y
的每个数字都使用 CultureInfo.InvariantCulture
进行格式化,这将使其使用 .
作为小数点分隔符。稍后它使用 AppendAllLines
将整个数组一次写入文件,其中每个元素都将写入单独的行。
此代码在文件中以这种格式打印浮点数 f,ffffff(带逗号)并且数字是连续的,但我需要这样打印f.ffffff(带点)并且在每个数字后跳过一行,因此每个数字都有自己的行。关于我该怎么做的任何想法?
代码已编辑
module writeFiles =
let (w:float[]) = [|-1.3231725; 1.052134922; 1.23082055; 1.457748868; -0.3481141253; -0.06886428466; -1.473392229; 0.1103078722; -1.047231857; -2.641890652; -1.335060286; -0.9839854216; 0.1844535984; 3.087001584; -0.008467130841; 1.175365466; 1.637297522; 5.557832631; -0.2906445452; -0.4052301538; 1.766454088; -2.604325471; -1.807107036; -2.471407376; -2.204730614;|]
let write secfilePath=
for j in 0 .. 24 do
let z = w.[j].ToString()
File.AppendAllText(secfilePath, z)
//File.AppendAllLines(secfilePath, z)
done
有几件事可以在您的代码中做得更好。
- 每次添加数字时,您都在一遍又一遍地打开文件
z
不需要可变- 您可以将格式模式 and/or 文化传递给
ToString
调用 - 您可以迭代
filterMod.y
而不是for
循环和数组索引器访问
我可能会选择更像
的东西module writeFiles =
let write secfilePath=
let data = filterMod.y
|> Array.map (fun x -> x.ToString(CultureInfo.InvariantCulture))
File.AppendAllLines(secfilePath, data)
它准备了一个字符串数组,其中 filterMod.y
的每个数字都使用 CultureInfo.InvariantCulture
进行格式化,这将使其使用 .
作为小数点分隔符。稍后它使用 AppendAllLines
将整个数组一次写入文件,其中每个元素都将写入单独的行。