舍入变体
为什么一个数字四舍五入到一位数字仍然写入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,单击单元格将显示整个值与公式栏中的尾数右侧的所有数字。
我应该期待这种行为?
试试myvar = WorksheetFunction.Round(mysingle, 1)
而不是myvar = round(mysingle,1)
另请参阅以下由@ YowE3K提供的信息
WorksheetFunction.Round
总是返回Variant/Double
types的值,而Round
返回与input parameter
相同types的值(在本例中为Single
)。
使用单打几乎总是一个坏主意 – Excel使用双打 – 转换单打双打导致麻烦 – 这个代码的作品,你期望的双,但给你一个单一的意想不到的答案,而不涉及圆
Sub roundit() Dim myvar As Variant Dim myDouble As Double Dim mySingle As Single myDouble = 4567.23494376 mySingle = 4567.2 myvar = Round(myDouble, 1) Range("a1").Value = myvar Range("a2").Value = mySingle End Sub