# Displaying percentage in customized ticks

Consider the following plot, where the ticks were customized

tickFunc =
MapAt[Reverse, {All, 3}]@*
ChartingScaledTicks[{Identity, Identity},
"TicksLength" -> {.01, .005}];

ListLinePlot[RandomReal[1, 30], Frame -> True,
FrameTicks -> {{tickFunc[##] &, None}, {tickFunc[##] &, None}}]


Now, I want to keep the same tick style but display the axes as a percentage using PercentForm.

Here's my attempt

tickFunc2 =
Module[{rawTicks},
rawTicks =
ChartingScaledTicks[{Identity, Identity},
"TicksLength" -> {.01, .005}][##];
rawTicks = MapAt[Reverse, rawTicks, {All, 3}];
MapAt[PercentForm[#] &, rawTicks, {All, 2}]] &;

ListLinePlot[RandomReal[1, 30], Frame -> True,
FrameTicks -> {{tickFunc2[##] &, None}, {tickFunc2[##] &, None}}]


As you can see, the y-axis is not affected by this. Any ideas on how to fix my code?

Replace PercentForm[#] & with PercentForm[# /. NumberForm[a_, ___] :> PercentForm[Round[a, .01]]] &:

tickFunc2 =  Module[{rawTicks},
rawTicks = ChartingScaledTicks[{Identity, Identity},
"TicksLength" -> {.01, .005}][##];
rawTicks = MapAt[Reverse, rawTicks, {All, 3}];
MapAt[PercentForm[# /. NumberForm[a_, ___] :> PercentForm[Round[a, .01]]] &,
rawTicks, {All, 2}]] &;

ListLinePlot[RandomReal[1, 30], Frame -> True,
FrameTicks -> {{tickFunc2[##] &, None}, {tickFunc2[##] &, None}}]


Note: The reason for the unexpected result is that non-integer labels are wrapped with NumberForm:

InputForm @ tickFunc2[0, 1]


Compare this with:

InputForm @ tickFunc2[0, 100]
`