算式计算
<h1>算式计算</h1>
<h2>功能描述</h2>
<p>根据输入的算式模板和变量值(X/Y/Z),计算表达式结果,并支持多种格式化输出方式。</p>
<h2>输入参数</h2>
<ul>
<li><strong>算式</strong>:<code>&quot;X + Y * Z&quot;</code></li>
<li><strong>X</strong>:<code>&quot;2&quot;</code></li>
<li><strong>Y</strong>:<code>&quot;3&quot;</code></li>
<li><strong>Z</strong>:<code>&quot;4&quot;</code></li>
<li><strong>结果处理方式</strong>(可选):<code>&quot;四舍五入&quot;</code>、<code>&quot;向上取整&quot;</code>、<code>&quot;向下取整&quot;</code>、<code>&quot;固定小数位数&quot;</code>、<code>&quot;指定位数向上取整&quot;</code>、<code>&quot;指定位数向下取整&quot;</code>、<code>&quot;指定位数四舍五入取整&quot;</code></li>
<li><strong>取整位数</strong>(可选):<code>&quot;0&quot;</code></li>
<li><strong>小数位数</strong>(可选):<code>&quot;2&quot;</code></li>
</ul>
<h2>输出结果</h2>
<ul>
<li><strong>算式结果</strong>:<code>&quot;14&quot;</code></li>
<li><strong>算式步骤</strong>:<code>&quot;2 + 3 * 4 = 14&quot;</code></li>
</ul>
<h2>日志记录</h2>
<ul>
<li>输入参数:
- <code>算式: &quot;X + Y * Z&quot;</code>
- <code>X: &quot;2&quot;</code>
- <code>Y: &quot;3&quot;</code>
- <code>Z: &quot;4&quot;</code>
- <code>结果处理方式: &quot;原始&quot;</code>
- <code>取整位数: &quot;0&quot;</code>
- <code>小数位数: &quot;0&quot;</code></li>
<li>输出结果:
- <code>算式结果: &quot;14&quot;</code>
- <code>算式步骤: &quot;2 + 3 * 4 = 14&quot;</code></li>
<li>日志信息:
- <code>[输入] 模板= X + Y * Z X= 2 Y= 3 Z= 4</code>
- <code>[控制] mode= 原始 intDigits= 0 decDigits= 0</code>
- <code>[替换后表达式] 2 + 3 * 4</code>
- <code>[计算返回] {&quot;result&quot;:14,&quot;steps&quot;:[&quot;2 + 3 * 4 = 14&quot;]}</code>
- <code>[原始结果] 14 → [格式化后结果] 14</code>
- <code>=== biz_calculateExpression 结束 ===</code></li>
</ul>
<h1>不同场景下的输出</h1>
<h2>场景 1:原始结果</h2>
<ul>
<li><strong>输入参数</strong>:
- 算式:<code>&quot;X + Y * Z&quot;</code>
- X:<code>&quot;2&quot;</code>
- Y:<code>&quot;3&quot;</code>
- Z:<code>&quot;4&quot;</code>
- 结果处理方式:<code>&quot;原始&quot;</code></li>
<li><strong>输出结果</strong>:
- 算式结果:<code>&quot;14&quot;</code>
- 算式步骤:<code>&quot;2 + 3 * 4 = 14&quot;</code></li>
<li><strong>日志输出</strong>:
- 输入参数:
- <code>算式: &quot;X + Y * Z&quot;</code>
- <code>X: &quot;2&quot;</code>
- <code>Y: &quot;3&quot;</code>
- <code>Z: &quot;4&quot;</code>
- <code>结果处理方式: &quot;原始&quot;</code>
- 输出结果:
- <code>算式结果: &quot;14&quot;</code>
- <code>算式步骤: &quot;2 + 3 * 4 = 14&quot;</code>
- 日志信息:<code>[原始结果] 14 → [格式化后结果] 14</code></li>
</ul>
<h2>场景 2:四舍五入</h2>
<ul>
<li><strong>输入参数</strong>:
- 算式:<code>&quot;X / Y&quot;</code>
- X:<code>&quot;5&quot;</code>
- Y:<code>&quot;3&quot;</code>
- 结果处理方式:<code>&quot;四舍五入&quot;</code></li>
<li><strong>输出结果</strong>:
- 算式结果:<code>&quot;2&quot;</code>
- 算式步骤:<code>&quot;5 / 3 = 1.6666666666666667&quot;</code></li>
<li><strong>日志输出</strong>:
- 输入参数:
- <code>算式: &quot;X / Y&quot;</code>
- <code>X: &quot;5&quot;</code>
- <code>Y: &quot;3&quot;</code>
- <code>结果处理方式: &quot;四舍五入&quot;</code>
- 输出结果:
- <code>算式结果: &quot;2&quot;</code>
- <code>算式步骤: &quot;5 / 3 = 1.6666666666666667&quot;</code>
- 日志信息:<code>[原始结果] 1.6666666666666667 → [格式化后结果] 2</code></li>
</ul>
<h2>场景 3:固定小数位数</h2>
<ul>
<li><strong>输入参数</strong>:
- 算式:<code>&quot;X / Y&quot;</code>
- X:<code>&quot;5&quot;</code>
- Y:<code>&quot;3&quot;</code>
- 结果处理方式:<code>&quot;固定小数位数&quot;</code>
- 小数位数:<code>&quot;2&quot;</code></li>
<li><strong>输出结果</strong>:
- 算式结果:<code>&quot;1.67&quot;</code>
- 算式步骤:<code>&quot;5 / 3 = 1.6666666666666667&quot;</code></li>
<li><strong>日志输出</strong>:
- 输入参数:
- <code>算式: &quot;X / Y&quot;</code>
- <code>X: &quot;5&quot;</code>
- <code>Y: &quot;3&quot;</code>
- <code>结果处理方式: &quot;固定小数位数&quot;</code>
- <code>小数位数: &quot;2&quot;</code>
- 输出结果:
- <code>算式结果: &quot;1.67&quot;</code>
- <code>算式步骤: &quot;5 / 3 = 1.6666666666666667&quot;</code>
- 日志信息:<code>[原始结果] 1.6666666666666667 → [格式化后结果] 1.67</code></li>
</ul>
<h2>场景 4:计算错误</h2>
<ul>
<li><strong>输入参数</strong>:
- 算式:<code>&quot;X / 0&quot;</code>
- X:<code>&quot;5&quot;</code>
- Y:<code>&quot;0&quot;</code></li>
<li><strong>输出结果</strong>:
- 算式结果:<code>&quot;错误:除数不能为零&quot;</code>
- 算式步骤:<code>&quot;&quot;</code></li>
<li><strong>日志输出</strong>:
- 输入参数:
- <code>算式: &quot;X / 0&quot;</code>
- <code>X: &quot;5&quot;</code>
- <code>Y: &quot;0&quot;</code>
- 输出结果:
- <code>算式结果: &quot;错误:除数不能为零&quot;</code>
- <code>算式步骤: &quot;&quot;</code>
- 日志警告:<code>[错误] 除数不能为零</code></li>
</ul>