2015-02-06 87 views
-2

我正在尋找一個問題的命令。Visual Fox Pro 9 4位數字

我有一個4位數字,如3521,問題是我需要找到的數字,其中前兩個數字是更大然後是最後兩個。

+0

所以我需要一個像3+ 5 2 + 1是好的,因爲8> 3 這個任何命令? – 2015-02-06 10:23:03

回答

1

假設你的號碼是lnMyNumber:

lnMyNumber = 3521 
? (Val(Left(Str(lnMyNumber, 4, 0),2)) > Val(right(Str(lnMyNumber, 4, 0),2))) 
0

命令窗口例如:

LOCAL unknownType 
unknownType = 3521 
? CompareSumsOfTwoBytePairs(unknownType) && returns true 
unknownType = "3521" 
? CompareSumsOfTwoBytePairs(unknownType) && returns true 
unknownType = "YZAB" 
? CompareSumsOfTwoBytePairs(unknownType) && returns true 
unknownType = 35210 
? CompareSumsOfTwoBytePairs(unknownType) && too long, returns false 
* The following unexpected types return all false: 
unknownType = .F. 
? CompareSumsOfTwoBytePairs(unknownType) 
unknownType = .Null. 
? CompareSumsOfTwoBytePairs(unknownType) 
unknownType = CREATEOBJECT("Form") 
? CompareSumsOfTwoBytePairs(unknownType) 
unknownType = DATE(2015, 2, 7) 
? CompareSumsOfTwoBytePairs(unknownType) 

FUNCTION CompareSumsOfTwoBytePairs(u) 
    LOCAL c 
    c = TRANSFORM(u) 
    RETURN LEN(c) == 4 AND (SUBSTR(c, 1, 2) > SUBSTR(c, 3, 2)) 
ENDFUNC 
0

另一種選擇是保留號碼爲數字VS被迫字符串轉換。

n = 3521 
? INT(n/100) > n-(INT(n/100)*100) 

n/100 = 35.21... the int leaves just 35 

,這同樣依據是另一半......

n-(INT(n/100)*100) 
3521 - (INT(3521/100) * 100) 
= 3521 - ( 35 * 100) 
= 3521 - 3500 = 21 

so 35 > 21 
0

這是一個完整的代碼比你可以把一個函數

local lnVal, llReturn 

    lnVal=35821 

    llReturn=left(trans(lnVal),2)>right(trans(lnVal),2) 

    return llReturn 
+2

雖然此代碼段可能會解決問題,但[包括解釋](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 – Bono 2015-03-16 12:56:00