- 已关闭**。此问题需要details or clarity。当前不接受答案。
- 想要改进此问题?**添加详细信息并通过editing this post阐明问题。
昨天关门了。
社区昨天讨论了是否重新讨论此问题,并将其关闭:
原始关闭原因未解决
Improve this question
我试着计算每天利润百分比,例如:
昨天我卖了10件,今天我卖了5件,所以百分比一定是-50%。
我已经设法取得了进展,但我相信我的计算中还漏掉了一些东西。
我的表快照:
当过去一天的销售项目为0时,进度变为无穷大。
下面是我javascript代码:
var class_name = ( parseFloat(row.total_sold) > parseFloat( row.prev_total_sold ) ? `success` : `danger` ) ;
class_name = ( parseFloat(row.total_sold) == parseFloat( row.prev_total_sold ) ? `primary` : class_name) ;
class_name = ( row.prev_total_sold == null ? `primary` : class_name) ;
var percentage = ( ( (row.total_sold - row.prev_total_sold) / row.prev_total_sold) * 100).toFixed(1);
return `<span class="badge badge-light-${class_name} ">
<i class="fa-solid fa-arrow-trend-up text-${class_name}" style="padding-right : 5px"></i>
${percentage}%
</span>`
行查询:
- prev_total_sold**=过去一天的售出商品价值
- total_solded**=为当日销售商品总数
问题是:我的计算是否符合要求?为什么今天的销售额为0时,我会得到无限的值!
2条答案
按热度按时间u5rb5r591#
这里的问题似乎是一个数学问题:0要乘多少次才能得到5?2答案是无穷大。
我的建议是检查
prev_total_sold
是否为0,然后使用默认值,如+100%
。修改代码:
uyto3xhc2#
由于基础数学的原因,你得到的是无穷大。为从
0
到y
(y > 0
)的增长指定一个百分比,将意味着存在满足以下等式的x
不可能有这样的
x
,因为0 * something
总是0。显示
infinity
是在javascript中被零除时发生的次好的事情,其他语言可能会抛出异常,如果你想显示任何其他特殊值而不是infinity
,你应该在除之前先检查是否prev_total_sold === 0
...