Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F#json解析器不识别浮点_Json_F#_F# Data - Fatal编程技术网

F#json解析器不识别浮点

F#json解析器不识别浮点,json,f#,f#-data,Json,F#,F# Data,我在f#项目中尝试json fsharp.data。 但json解析器似乎无法识别浮动 open FSharp.Data type Simple = JsonProvider<""" { "float": 1.0, "int":1, "string": "xxx" } """> let input = Simple.Parse(""" { "float": 12.3, "int":234, "string": "string" } """) print

我在f#项目中尝试json fsharp.data。 但json解析器似乎无法识别浮动

open FSharp.Data

type Simple = JsonProvider<""" 
  { "float": 1.0, "int":1, "string": "xxx" } 
  """>

let input = Simple.Parse(""" 
  { "float": 12.3, "int":234, "string": "string"  } 
  """)

printfn "%A %A %A" input.Float input.Int input.String
// the float seems to be read as an int
打开FSharp.Data
类型Simple=JsonProvider
让输入=Simple.Parse(“”)
{“float”:12.3,“int”:234,“string”:“string”}
""")
printfn“%A%A%A”输入。浮点输入。Int输入。字符串
//浮点数似乎被解读为int

我做错了什么?

您对
“float”:1.0
属性的示例输入在技术上是一个整数(在数字意义上),即使您在其中放了一个小数位

通常,提供程序支持(并按此顺序优先选择):
int
int64
decimal
float

这将使
JsonProvider
推断
浮动“
十进制
类型:

type Simple = JsonProvider<"""
  { "float": 1.1, "int":1, "string": "xxx" }
  """>

有关如何从JSON示例推断数据类型的更多信息,请参见。我现在尝试:{type Simple=JsonProvider let input=Simple.Parse(“{”float:12.3,decimal:2.34,“int:234,“string”:“string”}”)}现在已正确解析浮点。但是十进制被解析为int,这与文档不同。我现在看到,在我的测试中,它是:“decimal”:1.0这似乎被解释为int。我需要指定:“decimal”:1.1,然后就可以了。
type Simple = JsonProvider<"""
  { "float": 1314814912414812342456456456456456456433333313148149124148123424564564564564564564333333.0, "int":1, "string": "xxx" }
  """>