visual fox pro 20 分钟 20 分钟

Round minutes 20 in 20 in visual fox pro

请问我在解决有关 Visual Fox Pro 中某个程序的功能时遇到问题。

我需要每 20 分钟进行一次四舍五入。 例如:如果我收到 19 分钟 (0.316),您需要 return 0 分钟。 如果我在 0-19 分钟之间,return 0 分钟 如果我在 20-39 分钟之间,return 20 分钟 如果我在 40-59 分钟之间,return 40 分钟 如果我在 60-79 分钟之间,return 60 分钟

我正在考虑使用 ROUND() 但我不知道如何使用,因为 "Round" 接近最接近的小数。

提前致谢。

这是我制作的一个小程序,希望能对您有所帮助,或者至少让您朝着正确的方向前进。

lnStart             = 0
lnEnd               = 20
lnReceivedMinutes   = 500
llNotDone           = .T.

IF lnReceivedMinutes > 0
    DO WHILE llNotDone
        IF BETWEEN(lnReceivedMinutes, lnStart, lnEnd)
            llNotDone = .F.
            MESSAGEBOX(ALLTRIM(STR(lnStart)) + " Minutes")
        ELSE
            lnStart = lnStart + 20
            lnEnd = lnEnd + 20
        ENDIF
    ENDDO
ENDIF

我检查收到的值是否在我的 lnStartlnEnd 之间。如果不是,我会在接下来的 20 分钟内检查。

roundedMinutes = Floor( m.myMinute / 20 ) * 20

例如:

Create Cursor SampleMin (minutes i, rounded i)
Local ix
For ix = 1 To 600
    Insert Into SampleMin ;
        (minutes, rounded) ;
        values ;
        (m.ix, Floor(m.ix/20) * 20)
Endfor

Locate
Browse

Cetin Basoz 给出了正确答案

roundedMinutes = Floor( m.myMinute / 20 ) * 20

我检查过自己