爲什麼數字取整爲1位仍然會寫入Excel中的許多數字。對變體進行取整
例如:
dim myvar as variant
dim mysingle as single
dim myrange as range
mysingle = 4567.23494376
myvar = round(mysingle,1)
myrange = "A1"
myrange.value = myvar
即使我寫myvar
已四捨五入到一個數字的單元格A1,雖然單元格顯示4567.2,單擊單元格顯示的所有數字的整個價值在公式欄尾部的右側。
我應該期待這種行爲嗎?
是和不是..它取決於https://support.microsoft.com/en-us/help/214118/how-to-correct-rounding-errors-in-floating-point-arithmetic – Slai
此代碼在語法上是錯誤的。 'myrange =「A1」'將不起作用,而'myrange'作爲'Range'作爲'DIM'。由於'Excel'在'Double'精度中使用浮點,所以不應該在VBA中爲'Excel'使用'Single'。 –
是的。當您將單個'4567.2'轉換爲Double(這是Excel使用數字的方式)時,值將是'4567.2001953125',這是您在單元格中看到的內容。你可以這樣看:'Debug.Print myvar,CDbl(myvar)' –