如果两个数字是相同的 0,则在 C++ 和 Root 中创建 0 条件

If two digits are the same 0s then make 0 condition in C++ and Root

在我的代码中,图例是 运行 在一个循环中,我试图用

显示图表
0-10%
10-20%

等等。问题是当我写这段代码时

legend->AddEntry(gr[i], Form("%d0-%d0 %%",i+0,i+1), "lep");

显示

00-10%
10-20% etc

那么如何在第一行不显示 00 而显示 0?

对所显示的语句进行少量改编就足够了;使用:

legend->AddEntry(gr[i], Form("%d-%d %%", i*10 , (i+1)*10), "lep");

解释:

Form("%d0-%d0 %%",i+0,i+1) 似乎是某种字符串格式,i 你的循环变量从 0 到 9,对吧?显示的 Form 语句只是将“0” hard-coded 附加到 i 中的单个数字;相反,您可以将 i 乘以 10,得到您想要打印的实际数字;因为 10*0 仍然是 0,所以这仍然是一位数;所以,用 Form("%d-%d %%", i*10, (i+1)*10) 替换之前的 Form(...) 调用,你应该得到你想要的结果!

如果您担心打印 i*10 比打印带有“0”后缀的 i“效率低下” - 不要担心。无论如何,字符串的格式化和输出很可能比乘法慢几个数量级,因此进行多次乘法的任何开销都可以忽略不计。