vb.net 为什么 22.15/100=0.22149999999999997

来源:百度知道 编辑:UC知道 时间:2024/09/21 03:22:06
我要保留三位时出现的错误,很奇怪
结果是0.221而不是0.222

双精度浮点数计算有误差,这是计算机系统的问题,不光是VB.NET这样,所有语言都有这问题

对于这类需要精确计算的,用decimal数据类型

decimal x=(decimal)22.15;
decimal a=x/100;
Console.WriteLine("{0:0.000}",a);

你一定可以得到想要的结果 0.222。

很正常的,计算机运算时是有误差的
你可以尝试运算10-9.9,得到的答案不是0.1
所有语言都是这样的,这是计算机本身所决定的