首页 > 解决方案 > format.pval() 中的位数错误?

问题描述

当在 中指定 3 位时format.pval(),为什么会0.019950输出 4 位:

format.pval(0.019950, eps=.001, digits=3, nsmall=3)
"0.0199"

但是,比如说,0.019951输出 3 位数字:

format.pval(0.019951, eps=.001, digits=3, nsmall=3)
"0.020"

编辑(解决方案):

根据答案,在保留p值格式的同时保留 3 位数字的解决方案是将dcarlson's值四舍五入到 3 位,然后再将其传递给format.pval()

format.pval(round(0.019950, digits=3), eps=.001, digits=3, nsmall=3)
"0.020"

标签: rdigitsp-value

解决方案


要解决您的第一个问题“为什么 0.019950 输出 4 位数字”:使用参数digits = 3指定您希望显示小数点后的前 3 位有效数字(即199。从?format.pval

数字:要使用多少个有效数字。

回答您的第二个问题:0.019951with digits = 3first 被四舍五入"0.02"(您可以通过查看 的输出来确认format.pval(0.019951, eps=.001, digits=3))。然后通过设置nsmall = 3你要求小数点后 3 位,这"0.02"变成"0.020".


推荐阅读