DataFormatString="{0:F2}"
в моей странице ASCX для значения 0,0001 результатов в «0.00» и то, что мне нужно «0,01», то есть округление от нуля. Можно ли достигнуть в asp.net с помощью DataFormatString или использовать какой-то пользовательский метод округления?DataFormatString округления десятичных чисел большее значение
0
A
ответ
3
Вы не можете достичь этого путем округления. 0.0001 в 2 цифры всегда будет 0.00.
Если вы действительно этого хотите, вам нужно будет написать метод преобразования. Сначала напишите спецификации.
DataFormatString предполагает управление с привязкой к данным, так что вы, возможно, потребуется дополнительное (вычисляемое) столбец с чем-то вроде r = (v < 0.01 && r > 0.0) ? 0.01 : v;
0
Вы можете попробовать это:
float fno=2.67f;
int no=Convert.ToInt32(fno);
//using Math.Round Function
decimal d=Math.Round(Convert.Toint64(fno));
//if we want after point 2 decimal then
decimal d=Math.Round(Convert.Toint64(fno),2);
0
/// <summary>
/// Formats a number using a format string without rounding.
/// </summary>
/// <param name="value"></param>
/// <param name="formatString"></param>
/// <returns></returns>
public static string Format(object value, string formatString)
{
double val;
if (!Double.TryParse(value.ToString(), out val))
{
return "";
}
// Special handling for decimals
if (formatString.Contains("."))
{
int multiplier = (int)Math.Pow(10, getDecimalPlaces(formatString) + 1);
// Handle percentage
if (!formatString.Contains('%'))
{
multiplier /= 100;
}
return (Math.Truncate(val * multiplier)/multiplier).ToString(formatString); // prevent rounding by truncating
}
return val.ToString(formatString);
}
.01 в 100 раз больше, чем 0,0001. – StuartLC
Это действительно так. Но 0.0001 больше 0,00, и я хочу округлить от 0.0001 до большего значения, минимум 0,01 из-за строки форматирования {0: F2} – jjjjj