繁体   English   中英

为什么解析具有浮点值的字符串会给我带点后位数的数字

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM