单元格以单精度表示了结果,所以然。定义一下以,为double,如果single 则变成好近似数dim c as doublec = format(Rnd * 200 + 800, "#0.00") range("a1")=c
确实如你所述,但原因不知道。不过可用下面表达式间接解决:
C=Int(Rnd * 2000 + 8000 +0.5) / 10
…………
我后来研究了一下,特此补充一下:
检查代码中的C值,也只有一位小数,但显示到工作表中就有多位小数了。
另外如果用工作表四舍五入函数就没问题:WorksheetFunction.Round(Rnd * 200 + 800, 1)
真不知道是怎么回事!
c = Int(Rnd * 2000 + 8000) / 10
= 800+ROUND(RND*200,1)