Если вы хотите максимальной точности, вы можете преобразовать старый диапазон значений в новый диапазон, поддерживая соотношение по следующей формуле:
var OldRange = (OldMax - OldMin);
var NewRange = (NewMax - NewMin);
//i'm using round here has you requested, but its better to dont use it to achieve best results
var NewValue = Math.Round(((OldValue - OldMin) * NewRange) / OldRange) + NewMin, 1);
В вашем случае, например, для числа 12 это будет:
var OldRange = 99 //(100 - 1);
var NewRange = 1 //(1 - 0);
var NewValue = Math.Round(((12 - 1) * NewRange) / OldRange) + 0, 1);
Заключение числа 12 в старом диапазоне равно 0,1 в новом диапазоне.
Или, если вам все равно, что старый диапазон начинается с 1, а новый с 0, вы можете просто разделить на 100 и округлить значение:
Int field = 12;
Decimal d = field / 100;
Decimal dc = Math.Round(d,1); //to round to one decimal place
return dc;
Обратите внимание, что в c # оператор деления равен / , а не% (который является модулем)