6 svar
2128 visningar
alex behöver inte mer hjälp
alex 269 – Fd. Medlem
Postad: 6 sep 2019 12:52

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?

joculator 5289 – F.d. Moderator
Postad: 6 sep 2019 12:57 Redigerad: 6 sep 2019 12:59

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

alex 269 – Fd. Medlem
Postad: 6 sep 2019 14:08

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.

Affe Jkpg 6630
Postad: 6 sep 2019 14:09 Redigerad: 6 sep 2019 14:11

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

alex 269 – Fd. Medlem
Postad: 6 sep 2019 14:18

jag fattar inte varför 4,5 avrundas till 4 ??

Smaragdalena 80504 – Avstängd
Postad: 6 sep 2019 14:43
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.)

Mimamed 13 – Fd. Medlem
Postad: 9 sep 2019 00:26

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.

Svara
Close