我是第一次使用 JMP 的學生,對於任何錯誤的術語,我深表歉意。
我正在使用此公式將代碼分配給不同的支出範圍以進行 RFM 分析。

我遇到的問題是最高值 259.85。 它有時會返回正確的代碼“5”,有時會返回空白單元格。

誰能幫我解決這個問題? 感謝您的任何輸入!
這是一個博客如果.
這是上一個關於用二進制浮點數表示以 10 為基數的十進制數的問題。 簡短的回答是像 .1 或 .2 這樣的數字用二進製表示,就像 1/3 在基數 10 中一樣:無限重複的數字序列。 它在某個點被截斷並變圓,並且可能稍大或稍小。 (輕微地大約是 1e-15)。 與 .333+.333 != .667, .1+.2 !=.3 相同
.1+.2==.3
0 //為什麼不?減去它們,看看它們為什麼不同...
(.1 + .2) - .3
5.55111512312578e-17 //這是一個非常小的差異
這不是 JMP 特有的;請參閱上面第二個鏈接中的 Excel 註釋。
根據 Total_money 的計算方式,259.85 附近的值可能是 259.8500..01 或 259.8499..99(大致),您可能希望 if 語句在中間點拆分便士(未經測試的代碼,大致正確):
// caution: counting pennies using floating point will be painful!
if( total_money > 259.845, "5", // 259.85 and above
total_money > 139.895, "4", // 139.90 and above
total_money > 89.845, "3", // 89.85 and above
...
"0") // none of the above
這如果按順序進行每個測試並使用第一個正確的答案。 最後的“0”答案沒有測試,是別的if 語句的子句。
謝謝,嗯。 根據您的輸入,我將公式修改為如下所示:

我不確定這是否正是您的意圖,但它至少遵循了您建議的精神,消除了隱藏在一個 if 語句的上限和下一個 if 語句的下限之間的值的空間。
然而,這對我來說確實很奇怪,因為我不相信這個數據會超過 2 個小數點,所以我不明白為什麼會落在 .84 和 .85 之間。
非常感謝你的幫助!
total_money 的值可能介於 259.84 和 259.85 之間。您可以嘗試刪除 if 語句中“else if”條件的上限,並保留一個開放的“else”條件。此處似乎不適用的另外兩個常見問題是數據缺失和數據類型錯誤。 這是一個例子:
