舍入失败时如何将图例显示为零小数位?

Posted

技术标签:

【中文标题】舍入失败时如何将图例显示为零小数位?【英文标题】:How do you display legends to zero decimal places when rounding fails? 【发布时间】:2020-06-02 02:58:21 【问题描述】:

我无法创建可重现的 MWE - 此快照显示了我遇到问题的输出。

我想以此为情节图例 (matplotlib) 创建标签,但我需要它的小数位为零。是否有更可靠的 round 形式,您可以在其中强制零小数位?或者,还有其他方法可以让这个工作吗?我不想手动创建列表,因为我正在绘制的值以及形成它们的函数会发生变化。

我确实尝试分配plot_R(thetaValues[40])*1e6 的输出,然后对其进行四舍五入,但这也不起作用。我还尝试调用round 两次以防万一。有趣的是,它四舍五入到小数点后 0(如果四舍五入到 1,则输出为 160.3),它仍然在打印“.0”

【问题讨论】:

【参考方案1】:

如果你想截断小数点,你可以这样做:

decimal_round = round(plot_R(thetaValues[40])*1e6)
str_decimal = str(decimal_round)
if "." in str_decimal:
    decimal_round = int(str_decimal[:str_decimal.index(".")])

这会找到小数点 pt 的索引,对字符串表示进行切片以删除小数点和后面的所有内容,然后重新转换为 int。

希望对您有所帮助,祝编程愉快!

【讨论】:

以上是关于舍入失败时如何将图例显示为零小数位?的主要内容,如果未能解决你的问题,请参考以下文章

如何防止Java自动舍入

在 SQL 中舍入平均值时如何检索小数

如何舍入一个浮点数?

如有必要,如何舍入至多 2 位小数?

无科学记数法和双舍入

将数字截断为两位小数而不进行舍入