我需要在c#中实现一个逻辑,因为我需要拆分并将它添加到一起以获得相同的值。
例如:
1.0 / 6.0442137639369475 = 0.16544749061764519
当我添加
0.16544749061764519 + 0.16544749061764519
使它成为1.0根本不起作用
0.99268494370587
不完全是1.0。
我不确定我错过了什么......?
答案 0 :(得分:0)
尝试使用更精确的数据格式。尝试使用双倍。如果这不够精确,我怀疑,您仍然可以搜索更精确的实现。
答案 1 :(得分:0)
如果我猜你的问题是正确的,你想做以下数学:
c=a/b
d=c+c+c+...
n次,直到a==d
。
只有当您使用a
和b
的整数时才会有效,而您的实数为6.0442137639369475,而b
则不能(数学法则为afaik)。
顺便说一下:
您的分割结果0.16544749061764519
已四舍五入!正确的结果是0.16544749061764518326
。
所以你可能需要另外一种已经指出的数据类型。