Фортран 95 округляется самостоятельно

Я решил выучить язык fortran95 (причина почему не важна). Однако, будучи новичком, я столкнулся со странной проблемой, которую действительно могуНе могу объяснить, поэтому мне нужна помощь.

У меня есть алгоритм сортировки вставки:

subroutine insertion_sort_REAL4(array, array_len)
   implicit none
!parameners
   integer :: array_len
   real (kind=4), dimension(array_len) :: array 
!variables
   integer :: i,key,hole_pos
   do i = 0,array_len
      key = array(i)
      hole_pos = i;
      do while ((hole_pos > 0.0) .and. (key < array(hole_pos - 1)))
         array(hole_pos) = array(hole_pos - 1)
         hole_pos = hole_pos - 1
      end do
      array(hole_pos) = key
   end do
   return
end   

И есть основная программа (отрывок):

real (kind = 4), dimension(3) :: x
x(1) = 3.1
x(2) = 4.3
x(3) = 5.4
write(*,*) 'Array = ',x
call insertion_sort_REAL4(x,3)
write(*,*) 'Array = ',x  

Первыйwrite заявление распечатывается

Array =    3.09999990       4.30000019       5.40000010 

Почему цифры немного изменились? Разве fortran95 не использует стандарт IEEE754 по умолчанию?

Но давайговорят, что я могу жить с небольшими изменениями; второйwrite заявления распечатывает

Array =    3.00000000       4.00000000       5.00000000  

Почему цифры были округлены? Это'Это действительно мешает мне и форматируетзаписывать' заявление неничего хорошего, и поиски Google не сделалиЭто действительно помогло. Я полагаю, что в интернете не так много информации о фортране, как о Си. Я неплохой программист на Си, поэтому любые параллели с ним приветствуются. Спасибо вам за вашу помощь!

Ответы на вопрос(2)

Ваш ответ на вопрос