Que se passe-t-il lorsque memdiff et/ou totaldiff sont négatifs? J'espérais un memperc négatif, mais cela ne semble pas être le cas. Messing around en Python donne toutes sortes de résultats confus lorsque je branche des nombres négatifs.Retour avec une autre question mathématique
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
Editer: Oh, allez, la question n'est pas une mauvaise question. Peut-être que j'aurais dû être plus clair sur ce que j'essayais de faire.
Je prends deux valeurs de mémoire, une globale et une spécifique à cet addon. Je crée une différence en faisant thismem - lastmem
. C'est ma différence. J'ai deux d'entre eux, global et addon spécifique. Quand les ordures de Lua se rassemblent, j'obtiens plus de 100% quand je fais memdiff/totaldiff * 100
, quand il devrait être négatif. Je ne sais pas pourquoi.
Edit2:
Permettez-moi de donner quelques exemples.
lastmem = 95
mem = 100.
lastaddonmem = 20
addonmem = 25.
totaldiff = mem - lastmem
addondiff = addonmem - lastaddonmem
perc = addondiff/totaldiff * 100
perc = 100
lastmem = 100
mem = 95.
lastaddonmem = 25
addonmem = 20.
totaldiff = mem - lastmem
addondiff = addonmem - lastaddonmem
perc = addondiff/totaldiff * 100
perc = 100
Je sais que je vais à ce sujet dans le mauvais sens. C'est la raison pour laquelle je suis là.
Edit3: Pourquoi voulez-vous les fermer? J'avoue que je suis bête quand il s'agit de maths. Est-ce que les gens ont une telle intolérance pour les mathématiquement contestés? Je ne comprends tout simplement pas les maths. Les chiffres me confondent comme aucun autre défi. Je ne suis pas inculte. J'ai un trouble d'apprentissage. Je ne vois pas ce qu'est le gros problème.
J'ai fini par aller avec:
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
qui est python pas – aaronasterling
je ne dis pas qu'il était. La langue n'a pas d'importance. – Scott
Bien sûr, si à la fois memdiff et totaldiff sont -ve alors memperc sera + ve - je vous suggère de nous aider à vous aider en postant certaines de vos entrées et des résultats anormaux. –