作者JieJuen (David)
看板Office
標題[算表] 玩:小數進位與排名
時間Fri Sep 11 22:56:50 2009
現在板上出現了好玩的題目,化簡如下
4個小數 .4 .4 .2 .0
要化成(進位成) 1 0 0 0
小數的和就是最後要有幾個1
.4+.4+.2+.0=1 即有1個數要進位
小數和一定是整數
1要由最大的數開始放
有重覆的就自己選一個來放
因為提問者想要一格算出,
意即要使用陣列 {.4,.4,.2,.0} 來輸入
就是如果要用到.2 不能直接取第三格 要從{}中取出 如INDEX({},3)
因為{}中的數也是其他步計算所得
簡單說,公式應該用{.4,.4,.2,.0}整體
然後參照其中一格.4時 可得1
此公式往其他格拖曳 可在另一格.4 得0 剩下也得0
呵 好像有一定的難度
再給一例測試
.8 .8 .3 .1
1 1 0 0
看似4捨5入,但您知道的,這是第二個測試例。
我也還沒有答案,
但看起來應該有吧,
至少寫在多格會有答案?
雖然原問題暫時解決,
這是為未來著想,
有興趣的解完之後再套用到
│ 文章代碼(AID):
#1Ag7k4e5 (Office) [ptt.cc] [算表] 小數點後的比較進位或捨 │
│ 文章網址:
http://www.ptt.cc/bbs/Office/M.1252555652.A.A05.html │
●10760 4 9/10 m9300913 □ [算表] 小數點後的比較進位或捨去
做為該文的改進版 呵呵。
PS.我想至少可以小數TRUNC取兩位 再加.0001來排名 (如果有比較容易的話...)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.164.50.161
※ 編輯: JieJuen 來自: 218.164.50.161 (09/11 22:58)
→ lantolerance:J大的整理 釐清思緒; 想提供另一種思考: 09/12 07:50
→ lantolerance:將小數較小的值依序減到0並補到小數較大的值補到進整 09/12 07:53
→ lantolerance:例如:.4 .4 .2 .0 (-> .6 .4 .0 .0) -> 1.0 .0 .0 .0 09/12 07:55
→ lantolerance:這樣可行嗎?有沒有問題? 09/12 07:56
→ lantolerance:是否能用函數表現?(用VBA似乎可行) 09/12 07:58
→ JieJuen:這是比較vba的想法~ 函數要"搬移"較困難 且超過1還要再搬~ 09/12 08:31
→ JieJuen:但的確是另一種思考^^ 可能有些場合會用到~ 09/12 08:32
→ lantolerance:瞭解~謝謝~^^ 09/12 21:36