請我有問題解決有關Visual Fox Pro中的程序功能。20分鐘20分在視覺狐狸專業
我需要在十進制中每隔20分鐘舍入一次。例如:如果我收回19分鐘(0.316),則需要返回0分鐘。 如果我得到0-19分鐘之間,返回0分鐘 如果我得到20-39分鐘之間,返回20分鐘 如果我得到40-59分鐘之間,返回40分鐘 如果我得到60-79分鐘之間,返回60分鐘
我在想使用ROUND(),但我不知道如何因爲「圓」的方法到最近的小數。
在此先感謝。
請我有問題解決有關Visual Fox Pro中的程序功能。20分鐘20分在視覺狐狸專業
我需要在十進制中每隔20分鐘舍入一次。例如:如果我收回19分鐘(0.316),則需要返回0分鐘。 如果我得到0-19分鐘之間,返回0分鐘 如果我得到20-39分鐘之間,返回20分鐘 如果我得到40-59分鐘之間,返回40分鐘 如果我得到60-79分鐘之間,返回60分鐘
我在想使用ROUND(),但我不知道如何因爲「圓」的方法到最近的小數。
在此先感謝。
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
你的回答完美無瑕,非常感謝。 很簡單 –
這是我做的一個小小的prg,希望能幫助你,或者至少讓你朝正確的方向發展。
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
我檢查,看看是否收到的值是我lnStart
和lnEnd
之間。如果不是的話,我會檢查接下來的20分鐘。
非常感謝!完美的工作 –
切廷Basoz給了正確的答案
roundedMinutes = Floor(m.myMinute/20) * 20
我檢查自己使用此
上午,但如果想圓500分鐘...? IIF(VAR1> 0,IIF(BETWEEN(VAR1,0,0.3166),0,IIF(BETWEEN(VAR1),0.3333,0.8166),0.3333,0)),0) –