[问题] 浮点运算误差

楼主: alsmknn (alsm)   2021-05-20 22:03:59
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
使用者(已经有用R 做过不少作品)
[问题叙述]:
想请问一下大家有没有看过excel跑出的结果与R跑出的结果不一样的?
我有一个excel档案用以模拟某个东西的温度变化,我的工作是把他转成R
我转成R后发现温度结果对不上(百来次计算后差约2%, 上百万次后差10%)
,经过拆解中间的运算过程后,发现是因为R和excel使用的小数点位数不同
因此一开始是百万分之一的差异经过多次累加后就变大了。
请问有什么方法可以使两者用一样的小数位数进行计算吗?谢谢
[程式范例]:
[环境叙述]:
win 10 , R 3.6.1
作者: andrew43 (讨厌有好心推文后删文者)   2021-05-20 23:14:00
round强制以某个特定位数,但可能损失精确度不过究竟办法还是要了解二者浮点数处理到底怎么回事吧
楼主: alsmknn (alsm)   2021-05-21 00:25:00
我试过让R只读进小数下第四位,但他还是会自己补上小数四位后的数值(非0)
作者: andrew43 (讨厌有好心推文后删文者)   2021-05-21 18:31:00
不只输入,运算过程要都一致。感觉很麻烦
作者: Edster (Edster)   2021-05-22 02:25:00
用readxl读进来的时候,不要读成数字。用字串处里调尾数。
楼主: alsmknn (alsm)   2021-05-22 04:05:00
我找到了个packge Rmpfr可以要求R使用更多digit进行运算但是跟andrew大说的一样运算中会不断变回原本的digit位数我目前还在找方法强迫R对每个数都使用更多digits运算

Links booklink

Contact Us: admin [ a t ] ucptt.com