当前位置: 首页 > 知识库问答 >
问题:

如何在 Excel VBA 中将值舍入为 2dp?

姬衡
2023-03-14

我正在尝试将值记录为 2dp,但在使其工作时遇到问题。

我有一个包含测试用例的工作簿。宏获取这些测试用例,并在单独的工作簿中运行它们。然后将第二个工作簿中的计算值记录回第一个工作簿中。

我可以通过fine得到所有值,但希望其中三个值为2dp。我现在可以让它们显示为2dp,但当我单击单元格时,实际值约为13dp。如何将值设置为2dp,而不仅仅显示为2dp?

Dim MPCalc as Single
MPCalc = Sheets("Calculation").Cells(45,11).Value
MPCalc = WorksheetFunction.Round(MPCalc,2)
Cells(i, MPCalc_Col).Value = MPCalc

我试过。NumberFormat0.00,格式(MPCalc,0.00),圆形(MPCalc,2),但它们都带来了13dp的值,显示为2dp,我不知道为什么!

共有2个答案

谢锦程
2023-03-14

或者(或添加)到@Peh他的答案:

Sub RoundRange()

With Worksheets("Calculation")
    .Range("A1:A4").Value = .[ROUND(A1:A4,2)]
End With

End Sub

或更动态:

With Worksheets("Calculation")
    .Range("A1:A4").Value = Application.Round(.Range("A1:A4"), 2)
End With

而不是< code >。Range("A1:A4")您可以< code >设置另一个< code>Range变量。

姜俊友
2023-03-14

舍入后

Dim MPCalc As Single
MPCalc = Worksheets("Calculation").Cells(45,11).Value
MPCalc = Application.WorksheetFunction.Round(MPCalc, 2)

舍入值在变量< code>MPCalc中,但不在单元格中。因此,您需要将它写回您的单元格:

Worksheets("Calculation").Cells(45,11).Value = MPCalc

或者多合一:

With Worksheets("Calculation").Cells(45,11)
    .Value = Application.WorksheetFunction.Round(.Value, 2)
End With
 类似资料:
  • 检查了一些解决方案,但我没有得到预期的结果,这是我的代码; 谢了!

  • 我发现如果我对一些浮点值使用轮函数,四舍五入到两个小数是可以的,但是有时候,例如,它会返回而不是,但实际上我希望每个返回的值都四舍五入到两个小数,即而不是。我该怎么办?

  • swift中取整1.005的问题 1.005四舍五入到小数点后两位,结果是1.0,而不是1.01,如何求解? 输出:

  • 问题内容: 我想将1732的数字四舍五入到十,十万。我尝试了Math的舍入函数,但它仅针对float和double编写。如何针对Integer执行此操作?Java中有任何功能吗? 问题答案: 使用 精度 (Apache Commons Math 3.1.1) 使用 MathUtils (Apache Commons Math)-旧版本 标度 -小数点右边的位数。(+/-) 由于使用了 round(

  • 问题内容: 我想使用Javascript舍入一个数字。由于数字是货币,因此我希望像以下示例一样将其舍入(小数点后两位): 192.168 => 192.20 192.11 => 192.20 192.21 => 192.30 192.26 => 192.30 192.20 => 192.20 如何使用Javascript实现呢?内置的Javascript函数将根据标准逻辑对数字进行四舍五入(四舍五

  • 问题内容: 我需要四舍五入才能在UI中显示。例如,一个重要的数字: 1234-> 1000 0.12-> 0.1 0.012-> 0.01 0.062-> 0.06 6253-> 6000 1999-> 2000 是否有使用Python库执行此操作的好方法,还是必须自己编写? 问题答案: 您可以使用负数舍入整数: 因此,如果您只需要最高有效数字: 如果大于1,则可能需要将float转换为整数。