[英]Why parsing of a string with float value gives me number with big number of digits after point
我有以下代码
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
类型可能会更好一些,但是仍然需要小心。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.