Math 再来一道数学题

Math 再来一道数学题,math,Math,当memdiff和/或totaldiff为负值时会发生什么情况?我希望有一个负面的memperc,但似乎没有发生。当我插入负数时,在Python中乱搞会产生各种令人困惑的结果 local mem, percent, memdiff, totalMem, totaldiff = GetMemUsage("StarTip") if mem then if totaldiff == 0 then totaldiff = 0.001 end memperc = (memdiff / to

当memdiff和/或totaldiff为负值时会发生什么情况?我希望有一个负面的memperc,但似乎没有发生。当我插入负数时,在Python中乱搞会产生各种令人困惑的结果

local mem, percent, memdiff, totalMem, totaldiff = GetMemUsage("StarTip")
if mem then
    if totaldiff == 0 then totaldiff = 0.001 end
    memperc = (memdiff / totaldiff * 100)
    local num = memperc
    if num < 1 then num = 1 end
    if num > 100 then num = 100 end
    local r, g, b = gradient[num][1], gradient[num][2], gradient[num][3]
    return GetColorCode(format("%s (%.2f%%)", memshort(mem), memperc), r, g, b)
end
我知道我走错了方向。这就是我来这里的原因

Edit3:你们为什么要关闭这个?我承认我在数学方面很笨。是不是人们对数学上受到挑战的人有那么多的不容忍?我就是不懂数学。数字让我迷惑不解,这是我面临的其他挑战中所没有的。我不是没有受过教育。我有学习障碍。我看不出有什么大不了的

我最终选择了:

local mem, percent, memdiff, totalMem, totaldiff = GetMemUsage("StarTip")
if mem then
    if totaldiff == 0 then totaldiff = 0.0001 end
    local memperc
    if memdiff < 0 then
        memdiff = abs(memdiff)
        totaldiff = abs(totaldiff)
        memperc = memdiff / totaldiff * 100
        memperc = memperc * -1
    else
        memperc = memdiff / totaldiff * 100
    end
    local num = floor(memperc)
    if num < 1 then num = 1 end
    if num > 100 then num = 100 end
    local r, g, b = gradient[num][1], gradient[num][2], gradient[num][3]
    return GetColorCode(format("%s (%.2f%%)", memshort(mem), memperc), r, g, b)
end
localmem,percent,memdiff,totalMem,totaldiff=GetMemUsage(“StarTip”)
如果是mem那么
如果totaldiff==0,则totaldiff=0.0001结束
本地memperc
如果memdiff<0,则
memdiff=abs(memdiff)
totaldiff=abs(totaldiff)
memperc=memdiff/totaldiff*100
memperc=memperc*-1
其他的
memperc=memdiff/totaldiff*100
结束
本地数量=楼层(memperc)
如果num<1,则num=1结束
如果num>100,则num=100结束
局部r,g,b=梯度[num][1],梯度[num][2],梯度[num][3]
返回GetColorCode(格式(“%s(%.2f%%”)”、memshort(mem)、memperc、r、g、b)
结束
  • 如果
    memdiff
    totaldiff
    具有相同的符号,则
    memdiff/totaldiff>0
    。乘以100不会改变符号

  • 如果
    memdiff
    totaldiff
    具有不同的符号,则
    memdiff/totaldiff<0
    。再乘以100,也不会改变这一点

  • 如果
    memdiff==0
    ,则
    memdiff/totaldiff==0
    。乘以100并不能改变这一点

要了解为什么
memdiff/totaldiff*100>1
,只需注意这意味着
memdiff*100>totaldiff
,这意味着100>totaldiff/memdiff。没有规定百分比必须介于0和1之间

if totaldiff == 0 then totaldiff = 0.001 end 

    memperc = (memdiff / totaldiff * 100)
因此,如果memdiff>0.001,memperc将大于100

例1:(0.001/0.001)*100=100


例2:(0.002/0.001)*100=200

我没说是。语言不重要。当然,如果memdiff和totaldiff都是-ve,那么memperc将是+ve——我建议您通过发布一些输入和异常结果来帮助我们。@scott。你有点暗示这是真的。不管怎样,memdiff是什么?总体差异?这不是数学。这些东西是如何定义的。我不会说lua.memdiff和totaldiff都是数值,定义如下:
var=1
。是的,这是一道数学题。语言不重要。我在Lua中给出了我的例子,但同样的问题在任何语言中都会发生。我的问题是一个数学问题,而不是编程问题,尽管我在编程环境中使用数学。“我有计算障碍,所以数学对我来说很难。”斯科特。如果
memdiff=1
totaldiff=1
那么
memdiff/totaldiff=1
它们实际上是如何定义的?根据OP,这是数学而不是编程,因此小数代表noob。要么理智点,要么回家。亚伦,你在这里只是恶意而已。现在重读这篇文章就有意义了。:)你发现了问题所在,而不是我想的地方。“这是数学而不是编程,因此小数代表noobs”。“我想你弄错了,数学中的实数是正常的,但编程是一件痛苦的事情。”杰德。这是一个笑话,但你有它的另一种方式。你的数学永远不会是对的。是1/100。编程中没有实数,所有的东西都是理性的。主要是我很恼火,你说的话和我说的一样,但是这样的方式让斯科特不必去想就明白了。
if totaldiff == 0 then totaldiff = 0.001 end 

    memperc = (memdiff / totaldiff * 100)