关于Excel/Libre Office Calc中百分比转小数、复利交易手数计算及数值向下取整的技术问询
Excel/Libre Office Calc中百分比转小数、复利交易手数计算及数值向下取整的技术问询
Hey there, let's tackle your two trade lot calculation issues one by one—super straightforward fixes here:
1. 修正百分比增益的计算逻辑
你遇到的是百分比增长计算里的常见误区!100%增益意味着在手数基础上翻倍,而不是直接用起始值乘以百分比数值。
你之前算出1.01而不是0.02,大概率是用了类似=起始值 * 100%的公式(这会被解析成0.01 * 1 = 0.01),或者错误地把百分比当成整数来相加。复利手数的正确计算公式应该是:
=起始手数 * (1 + 增益百分比)
举个例子,如果起始手数在B2单元格,100%增益在A2单元格(格式设为百分比),这个公式会算出0.01 * (1 + 1) = 0.02,完全符合你的预期。
2. 实现手数上限100的向下取整需求
要把计算出的手数限制在100以内(超过100时自动向下取整到100),我们可以组合两个函数来完成:
=MIN(FLOOR(计算出的手数, 0.01), 100)
各部分的作用:
FLOOR(计算出的手数, 0.01):把计算结果向下取整到最接近的0.01(符合交易手数的最小单位规则)。MIN(..., 100):确保取整后的值如果超过100,就自动返回100——刚好满足你说的第23行及以后的手数限制要求。
如果你需要严格把任何超过100的数值直接向下取整到100(比如102.3直接变成100),也可以用=FLOOR(计算出的手数, 100),不过MIN()的方式更灵活,能保留小于100的有效手数不变。
备注:内容来源于stack exchange,提问作者John Boyd
相关产品推荐
相关产品推荐

