If you want your floats to work as percentages, you'll want to divide the d100 results by 100 first, so you end up with a decimal value that's less than 1.
Right now, your code is storing the full numbers as floats.
Example: d100() = 53 ... IntToFloat(53) = 53.00 ...
use that as a percentage in a calculation and you're looking at 5300%
Instead, you can do something like this:
int pLeather = d100();
float fLeather = pLeather * 0.01; // multiplying by a float value gives you a float result
SetLocalFloat(oArea, "pLeather", fLeather);
Your price calculation then should look something like:
object oLeather; // your piece of leather to sell
obejct oPC; // your PC selling the leather
int nBasePrice = GetGoldPieceValue(oLeather);
int nNewPrice = FloatToInt((nBasePrice * GetLocalFloat(oArea, "pLeather")) + (nBasePrice * (GetSkillRank(SKILL_APPRAISE, oPC) * 0.05)));
You can post code here rather easily. Just start it with [ code ] and end it with [ /code] (remove the spaces inside for it to work).