在R打印(x,digits=n)中,做一些有点复杂的事情。
它总是显示小数点左边的所有数字,然后,如果右边有任何数字,它会舍入整个数字,以便最多显示n个数字。然而,领先的0不算在内。下面是演示该函数如何工作的示例。
print(2,digits=2)
2
print(23,digits=2)
23
print(23.12,digits=2)
23
print(2.12,digits=2)
2.1
print(0.126,digits=2)
0.13
print(23236.12,digits=6)
23236.1
print(123,digits=2)
123
print(0.00, digits=2)
0
print(23236.12,digits=1)
23236
print(1.995,digits=3)
2
print(0.0336, digits=3)
0.0336 给定十进制数0 <= x <= 2^{40}和n \leq 22作为输入,您的代码应该模仿R的print(x,digits=n)函数。
这与我下面的评论不同,抱歉。我以前不明白四舍五入的问题。结果发现,在R(或Python )中,舍入没有容易理解的规则。例如,
print(0.05, digits=1)
0.05
print(0.15, digits=1)
0.1
print(0.25, digits=1)
0.2
print(0.35, digits=1)
0.3
print(0.45, digits=1)
0.5
print(0.55, digits=1)
0.6
print(0.65, digits=1)
0.7
print(0.75, digits=1)
0.8
print(0.85, digits=1)
0.8
print(0.95, digits=1)
0.9因此,你可以在你的回答中选择向上或向下。如果你能遵循R所做的,那就更好了,但这并不是一个严格的要求。
发布于 2022-10-07 16:15:41
https://codegolf.stackexchange.com/questions/252766
复制相似问题