1 zxCoder 2021-09-24 11:07:52 +08:00 没听懂。。。。你是想解决这个“数学问题”?还是说是写代码怎么处理?那保存结果的分子分母?这样肯定是准确的 |
![]() | 2 Vinty 2021-09-24 11:12:32 +08:00 用符号运算 |
3 deplivesb 2021-09-24 11:13:44 +08:00 你确定这个是数学问题么? |
![]() | 4 cmdOptionKana 2021-09-24 11:16:22 +08:00 根据具体目的灵活处理,会计专业肯定有处理 这些问题的约定俗成的方法。 |
![]() | 5 cmdOptionKana 2021-09-24 11:20:49 +08:00 比如,要看你把这两部操作当作“总是前后发生的一个固定流程”,还是看成“两个独立事件,其中第二个事件可能发生,可能不发生,可能相隔久远才发生”。 如果看作两个独立事件,那么当第一步舍弃精度时,就已经决定了后续不可能完美还原。如果确实有必要,可以考虑使用分数,但这会导致系统很复杂。 |
6 GuuJiang 2021-09-24 11:26:23 +08:00 via iPhone 又见 XY 问题,请直接说出你的原始需求,盲猜需要的是个符号运算系统 |
![]() | 7 zhuawadao 2021-09-24 11:57:43 +08:00 如何得知( 3.34 或 3.334 )是商不是商 |
8 jifengg 2021-09-24 12:06:03 +08:00 数学问题:“等于 3.34”这里应该是“约等于 3.34”,丢失了精度了。用一个“约等于”的数,没法得到一个“等于”的数。你怎么知道 3.34 是由 3.335 还是 3.333 还是 3.332 约来的呢。 数学解法:10 除以 3 不表示为 3.34 ,表示为 3 |
9 Jooooooooo 2021-09-24 13:05:49 +08:00 Not a math problem. |
10 pangchaoran 2021-09-24 13:32:17 +08:00 已知: C=A/B C1=ceil(C1,1e-3) 求 f, 使得 A=f(C1,B) 以上是你的需求吧? 由于 abs(C1-C)<1e-3, 故 abs(C1*B-A)=abs(C1-C)*B<(1e-3)*B 再加上 C1>>1e-3 故 A=round(C1*B,(1e-3)*B) 如果 B 有上限, 可以用(1e-3)*上限 作为 round 的精度 以上, 不严格想法. 需要测试 |
![]() | 11 bk201 2021-09-24 13:39:35 +08:00 就是 1/3 怎么表示的问题 |
![]() | 12 ipwx 2021-09-24 13:42:36 +08:00 1. 用符号、分数参与运算。 2. 浮点数最后做舍入。反正你本来系统里面任何小数都不精确,输出的时候也要舍入。 |
![]() | 13 goool 2021-09-24 13:46:50 +08:00 增加一个 “内部表示” 的概念,把所有需要参与运算的数都用 “有理数” 来表达。只在需要数值的时候,才把它计算出来,不能表示为整数的,按需要精确的位数与舍入规则来确定。 具体到你的问题: 将 10 的内部表示记作 (10, 1),类似地,3 的内部表示,就是 (3, 1) 10 除以 3,就是 (10, 1) / (3, 1),做有理数除法,得到 (10, 3) (10, 3) 乘以 3,就是 (10, 3) * ( 3, 1),做有理数乘法,得到 (10, 1) |
![]() | 14 kop1989 2021-09-24 13:48:07 +08:00 这个问题并不是数学问题,因为除并约等于之后,就丢失了信息。 此时 3.34 对应着不止一个被除数和除数的组合。 你怎么知道你最终想要的被除数是多少? |
15 stirlingx 2021-09-24 13:52:36 +08:00 这是一个 model 和 view 的问题,10/3 是 model,3.34 是 view,一个 model 可以有多个 view |
![]() | 16 VictorJing94 2021-09-24 15:38:51 +08:00 再给留个余数后面+上? |
![]() | 17 grimpil 2021-09-24 21:33:13 +08:00 10÷3=3.34 这一步肯定错了,只能用约等号。 |
![]() | 19 lixiang2017 2021-09-25 09:06:17 +08:00 via Android GCD |
20 volvo007 2021-09-25 12:41:19 +08:00 感觉严格操作的话, 不太可能还原回去, 进位的时候就已经损失信息了吧 感觉要不写个类, 一个属性放这个进一的结果, 另一个属性放符号计算结果 展示用前一个属性, 运算的时候用后一个属性? |