Foxtable(狐表)用户栏目专家坐堂 → 为什么输出的结果不一样?


  共有1038人关注过本帖树形打印复制链接

主题:为什么输出的结果不一样?

帅哥哟,离线,有人找我吗?
YUNSEL
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:200 积分:2567 威望:0 精华:0 注册:2016/11/9 19:13:00
为什么输出的结果不一样?  发帖心情 Post By:2024/9/13 13:24:00 [只看该作者]

Output.Show(4.5 * 7.1323)   输出结果是:32.09535
Output.Show(round2(32.09535, 4))    输出结果是:32.0954
Output.Show(round2(4.5 * 7.1323, 4))   输出结果是:32.0953

第二行与第三行写法为何输出结果不一样?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/9/13 13:31:00 [只看该作者]

我也不懂。不过如果对结果准确度要求高的,建议还是使用变量的方式

Dim d As Decimal = 4.5 * 7.1323
Output.Show(d)
Output.Show(round2(d, 4))


 回到顶部
帅哥哟,离线,有人找我吗?
puma
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:358 积分:3005 威望:0 精华:0 注册:2023/6/7 16:07:00
  发帖心情 Post By:2024/9/13 14:09:00 [只看该作者]

7.1323 在内存里,是一个近似的数?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/9/13 14:14:00 [只看该作者]

计算内部的原理不清楚,也许是精度的问题,类似:http://www.foxtable.com/webhelp/topics/1829.htm

 回到顶部
帅哥哟,离线,有人找我吗?
YUNSEL
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:200 积分:2567 威望:0 精华:0 注册:2016/11/9 19:13:00
  发帖心情 Post By:2024/9/13 15:26:00 [只看该作者]

我试了,要这样处理:
dim s1 as Decimal = 4.5
dim s2 as Decimal = 7.1323
Output.Show(round2(s1* s2, 4))   输出结果是:32.0954

 回到顶部