我有以下代码

app.First.SelectToken("averageScore")?.ToString()


它在Newtonsoft库的帮助下解析json。

这是结果

“ 4,8”

但是,当我尝试将其转换为两倍时,会得到以下结果:

“ 4.7999999999999998”

码:

double.Parse(app.First.SelectToken("averageScore")?.ToString())


但我需要双4.8。如何获得?对于十进制,这种方式很好用。但是我需要加倍。

最佳答案

尝试将数字1/3表示为小数时,这与您遇到的问题是一样的:您无法精确地做到这一点。在这种情况下,.8十进制值在以2为底的形式中不具有确切的表示形式,因此您得到的结果不完美。使用decimal类型可能会做得更好,但是仍然需要小心。

关于c# - 为什么解析具有浮点值的字符串会给我带点后位数的数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56528539/

10-17 02:04