Как получить второй до последнего ряда предоставленного идентификатора

У меня недостаточно комментариев для комментариев, поэтому я буду «отвечать» на предложение Рика Томпсона для тестирования бесконечности.

if (A-1 .eq. A) 

Это также верно, если A - очень большое число с плавающей запятой, а 1 ниже точности A.

Простой тест:

subroutine test_inf_1(A)
    real, intent(in) :: A
    print*, "Test (A-1 == A)"
    if (A-1 .eq. A) then
        print*, "    INFINITY!!!"
    else
        print*, "    NOT infinite"
    endif
end subroutine

subroutine test_inf_2(A)
    real, intent(in) :: A
    print*, "Test (A > HUGE(A))"
    if (A > HUGE(A)) then
        print*, "    INFINITY!!!"
    else
        print*, "    NOT infinite"
    endif
end subroutine


program test
    real :: A,B

    A=10
    print*, "A = ",A
    call test_inf_1(A)
    call test_inf_2(A)
    print*, ""

    A=1e20
    print*, "A = ",A
    call test_inf_1(A)
    call test_inf_2(A)
    print*, ""

    B=0.0 ! B is necessary to trick gfortran into compiling this
    A=1/B
    print*, "A = ",A
    call test_inf_1(A)
    call test_inf_2(A)
    print*, ""

end program test

выходов:

A =    10.0000000    
Test (A-1 == A)
    NOT infinite
Test (A > HUGE(A))
    NOT infinite

A =    1.00000002E+20
Test (A-1 == A)
    INFINITY!!!
Test (A > HUGE(A))
    NOT infinite

A =          Infinity
Test (A-1 == A)
    INFINITY!!!
Test (A > HUGE(A))
    INFINITY!!!
0
задан Karl Hill 15 January 2019 в 11:06
поделиться

2 ответа

Я предполагаю, что вы пытаетесь вернуть переменную $ second. Вы возвращаете переменную с именем 'secondlast'. Попробуйте изменить имя переменной на $ secondlast.

0
ответ дан Jesse 15 January 2019 в 11:06
поделиться

Чтобы вернуть вторую последнюю запись из резервной модели, следующий запрос должен работать при условии, что ваш первичный ключ - «id»:

Backup::orderBy('id', 'desc')
->skip(1)
->take(1)
->first();
0
ответ дан Petay87 15 January 2019 в 11:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: