F# 中的输入字符串格式不正确
Input String was not in a correct format in F#
谁能告诉我这段代码有什么问题并解释一下?
open System
let hexarea t:float =
(3.0*Math.Sqrt(3.0)/2.0) * Math.Pow(t, 2.0)
let value = float (Console.ReadLine())
let calc = hexarea value
printfn "%f" calc
我可以给个提示,当它像
open System
let hexarea t : float =
(3.0 * Math.Sqrt(3.0) / 2.0) * Math.Pow(t,2.0)
[<EntryPoint>]
let main argv =
let value = float (Console.ReadLine())
let calc = hexarea value
printf "%f" calc
0
然后就可以了。
请向我说明发生了什么,第一个代码有什么问题。
此外,如果我从最后一行中删除 0,它会抱怨 ..
如果您遇到 "Input String was not in a correct format" 异常,如问题标题所示,这可能是因为您在 Console.ReadLine
中输入的数字格式不正确。
如果您来自使用十进制逗号而不是十进制点的国家/地区,则这是一个连续的 pain-point。在捷克语中,我们写 3,14
因此如果您将当前文化设置为 cs-CZ
您将得到:
System.Threading.Thread.CurrentThread.CurrentCulture <-
System.Globalization.CultureInfo.GetCultureInfo("cs-CZ")
float "1.0" // Works because this uses invariant culture
System.Double.Parse("1.0") // Fails because this uses cs-CZ culture now
float "1,0" // Fails because the invariant culture requires .
System.Double.Parse("1,0") // Works according to cs-CZ culture
谁能告诉我这段代码有什么问题并解释一下?
open System
let hexarea t:float =
(3.0*Math.Sqrt(3.0)/2.0) * Math.Pow(t, 2.0)
let value = float (Console.ReadLine())
let calc = hexarea value
printfn "%f" calc
我可以给个提示,当它像
open System
let hexarea t : float =
(3.0 * Math.Sqrt(3.0) / 2.0) * Math.Pow(t,2.0)
[<EntryPoint>]
let main argv =
let value = float (Console.ReadLine())
let calc = hexarea value
printf "%f" calc
0
然后就可以了。
请向我说明发生了什么,第一个代码有什么问题。
此外,如果我从最后一行中删除 0,它会抱怨 ..
如果您遇到 "Input String was not in a correct format" 异常,如问题标题所示,这可能是因为您在 Console.ReadLine
中输入的数字格式不正确。
如果您来自使用十进制逗号而不是十进制点的国家/地区,则这是一个连续的 pain-point。在捷克语中,我们写 3,14
因此如果您将当前文化设置为 cs-CZ
您将得到:
System.Threading.Thread.CurrentThread.CurrentCulture <-
System.Globalization.CultureInfo.GetCultureInfo("cs-CZ")
float "1.0" // Works because this uses invariant culture
System.Double.Parse("1.0") // Fails because this uses cs-CZ culture now
float "1,0" // Fails because the invariant culture requires .
System.Double.Parse("1,0") // Works according to cs-CZ culture