当输入为科学计数法时,VBA Round() 函数始终返回零

Posted

技术标签:

【中文标题】当输入为科学计数法时,VBA Round() 函数始终返回零【英文标题】:VBA Round() function always returns zero when input is in scientific notation 【发布时间】:2013-12-17 20:17:00 【问题描述】:

Round() VBA 函数有一个奇怪的问题。当我尝试以科学计数法四舍五入任何输入时,它总是返回零:

?单元格(3, 34).值

8,77796901893289E-02

? Round(Cells(3, 34).Value, 0)

0

? Round(8.777, 0)

9

任何线索如何使它工作?

【问题讨论】:

嗯... 8e-2 = 0.08 所以结果看起来是正确的... "8.77796901893289E-02"(美式'.'对不起:P)表示 0.087796901893289,当四舍五入到零小数位时 IS 0... 太棒了 :) 谢谢大家! 【参考方案1】:

8,77796901893289E-02 等于 0,0877796901893289,因此将舍入为零。

【讨论】:

【参考方案2】:

我认为您遇到的问题是 round 处理“位数”而不是有效数字。

这个位数是指小数位数。下图显示了帮助文件中的示例。

【讨论】:

以上是关于当输入为科学计数法时,VBA Round() 函数始终返回零的主要内容,如果未能解决你的问题,请参考以下文章

java 中使用BigDecimal 解决科学计数法问题

Access VBA 函数为不同的用户产生不同的结果

当用户输入超过预期的参数时,强制 VBA 中的 UDF 显示 MsgBox?

科学记数法 Java

Excel身份证号为啥变成了科学计数

excel导入csv格式 身份证号就变成科学计数法了,怎么转变回去