为什么数字取整为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)' –