2015-04-07 2 views
0

Я пытаюсь округлить двойной прецизионный поплавок до ближайшего int в MIPS.Округление двойных прецизионных поплавков в MIPS

Вот мой код.

li $v0, 7 
syscall 
round.w.d $f2, $f0 

После ввода 10.5 оно округляется до 10.500000000000018. Эта функция round.w.d должна окружить регистр f0 до ближайшего 32-битного int (.word), а затем сохранить результат в f2. Что я делаю не так? Я не могу найти информацию о том, что процедура неверна. Спасибо за вашу помощь заранее.

ответ

0
li $v0, 7 
syscall 
round.w.d $f2, $f0 
cvt.d.w $f2, $f2 <--- this fixed the problem.