Vad händer om du gör om ett decimaltal till ett heltal (int) - avrundas talet korrekt då?, varför?
Hej
Vad händer om du gör om ett decimaltal till ett heltal (int) - avrundas talet korrekt då?, varför?
svar :
jag vet att det ska inte funka men varför?
Det beror på HUR du 'gör om det'.
Edit:
Convert.ToInt32 and Decimal.ToInt32 behave differently.
From MSDN: Decimal.ToInt32 - The return value is the integral part of the decimal value; fractional digits are truncated.
Convert.ToInt32 - Return value rounded to the nearest 32-bit signed integer. If value is halfway between two whole numbers, the even number is returned; that is, 4.5 is converted to 4, and 5.5 is converted to 6
men Convert.ToInt32 avrundar på ett rätt sätt
till exempel om decimaltalet är 1,5 så Convert.ToInt32 kommer att avrundra till 2 och om decimaltalet är 1,4 så avrundas till 1
men jag har ingen aning om Decimal.ToInt32 , där försöker men går inte.
Det finns, som joculator beskriver, två korrekta svar på vad som är korrekt.
Om det inte funkar som man tänkt dig, brukar man på lämpligt sätt enkelt kunna justera med värdet 0.5
jag fattar inte varför 4,5 avrundas till 4 ??
alex skrev:jag fattar inte varför 4,5 avrundas till 4 ??
Så lärde man sig att avrunda när jag gick i skolan - om sista siffran är 5 skulle det bli mindre felaktigheter om man alltid avrundade till närmaste jämna tal - d v s 4,5 och 6,5 avrundas neråt, men 5,5 och 7,5 avrundas uppåt. (Man hade lika gärna kunnat bestämma sig för att alltid avrunda till närmaste udda tal, men det gjorde man inte.)
om du skriver tex (int) 4.5 så kommer du få talet 4 eftersom (int) endast tar heltalet och lämnar decimalerna. Det avrundar INTE.
Om vi tar ett annat exempel som (int) 123.456 så kommer du få fram 123 eftersom int ignorerar decimaltalen.