webForumDet fria alternativet

Avrunda

.NET

2 svar · 257 visningar · startad av aleborg

Medlem sedan jan. 20013 341 inlägg
Frågan#1

Hur avrundar man en double till närmsta halv eller heltal?

double pengar = 235.26;
Math.Round(pengar);

ger mig 235 men jag vill ha det till 235.50 och 235.24 ska bli 235.00 osv

Medlem sedan aug. 20003 575 inlägg
#2

Kanske finns något inbyggt annars fungerar den här.

private double CurrencyRound(double dblArg)
		{
			double dblValue = dblArg-Math.Round(dblArg);
			if(dblValue >= 0.25)
			{
				return (dblArg-dblValue)+0.5;
			}
			else if(dblValue < -0.25)
			{
				return (dblArg-dblValue)-0.5;
			}
			else
			{
				return Math.Round(dblArg);
			}
		}
Medlem sedan sep. 20011 914 inlägg
#3

Alt 2:

public static double LevelDime(double price)
{
   int totalcost = (int)price;
   double d = price - totalcost;
           
   if(d < 0.25d)
      return (double)totalcost;

   if(d > 0.74d)
      return (double)(++totalcost);

   return (double)(totalcost + 0.5);
}
254 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)