我有以下代码
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/