Excel 用 VBA 随机数如何保留一位小数

2024-12-14 13:39:09
推荐回答(4个)
回答1:

单元格以单精度表示了结果,所以然。定义一下以,为double,如果single 则变成好近似数dim c as doublec = format(Rnd * 200 + 800, "#0.00") range("a1")=c

回答2:

确实如你所述,但原因不知道。不过可用下面表达式间接解决:
C=Int(Rnd * 2000 + 8000 +0.5) / 10
…………
我后来研究了一下,特此补充一下:
检查代码中的C值,也只有一位小数,但显示到工作表中就有多位小数了。
另外如果用工作表四舍五入函数就没问题:WorksheetFunction.Round(Rnd * 200 + 800, 1)
真不知道是怎么回事!

回答3:

c = Int(Rnd * 2000 + 8000) / 10

回答4:

= 800+ROUND(RND*200,1)