2016年5月22日 星期日

Excel VBA INT 轉換錯誤問題

些許日子,在幫老婆做VBA的整數轉換時
使用INT() 函式將 double轉成int時,原本是4,轉出後變成3
查了國外討論,既然是微軟的問題
解決方法就是在轉換前,先將要轉換變數先轉成Decimal,再轉成INT即可。


As expected, this correctly evaluates to 1001:

? 100.05 * 10 + .5
1001

However, using the same expression inside the Int( ) function gives the wrong result:

? Int(100.05 * 10 + .5)
1000 












 Here’s the correct way to perform rounding:

Function FMS_Round(dblNumber As Double, intDecimals As Integer) As Double
  Dim dblFactor As Double
  Dim dblTemp As Double
  
  dblFactor = 10 ^ intDecimals
  dblTemp = dblNumber * dblFactor + .5
  
  FMS_Round = Int(CDec(dblTemp)) / dblFactor

End Function

With the simple addition of the CDec conversion, FMS_Round( ) returns the correct result:

? FMS_Round(100.05, 1) ' Correctly returns 100.1 

Reference:
When Microsoft Access Math Doesn't Add Up http://www.fmsinc.com/tpapers/math/index.html 
 

2016年5月13日 星期五

新家裝潢 - 傢俱篇

經過木作、油漆 進場裝潢後
與老婆開始進行傢俱的選購
前前後後看了新竹、竹北許多傢俱店
也往台北、桃園及台中的IKEA

但考量品質與價格之間的取捨
往往這些美倫美奐的店是一分錢一貨
很難找到「物超所值」的傢俱
困擾老婆與我一陣子

無意見,家父向我提及家中最近添購桌子與新床
是在彰化室內設計的表嫂推薦的一家上游廠商製作的
欣喜若狂
當週假日,我們兩人就前往 鹿港的宏興傢俱

傢俱琳瑯滿目
加上目錄上的傢俱

老闆的兒子 - 小崴 非常熱心的陪我們兩天

我們兩天假日都泡在那邊選傢俱

終於挑到我們心目中的傢俱
 
 

而且我們都覺得價格比大都市便宜許多

品質與服務也很棒 

雖然是在鹿港的鄉下,但我還是想推薦給大家

非常值得從新竹跑這一趟

如果你們想過去,可以打0923560775給小崴
可以說是竹北-Ray推薦
他會給你們折扣優惠