首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模拟R的打印(x,digits=n)

模拟R的打印(x,digits=n)
EN

Code Golf用户
提问于 2022-10-07 11:55:55
回答 3查看 571关注 0票数 10

在R打印(x,digits=n)中,做一些有点复杂的事情。

它总是显示小数点左边的所有数字,然后,如果右边有任何数字,它会舍入整个数字,以便最多显示n个数字。然而,领先的0不算在内。下面是演示该函数如何工作的示例。

代码语言:javascript
复制
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 )中,舍入没有容易理解的规则。例如,

代码语言:javascript
复制
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所做的,那就更好了,但这并不是一个严格的要求。

EN

回答 3

Code Golf用户

发布于 2022-10-07 16:15:41

德斯莫斯,44字节

代码语言:javascript
复制
f(x,n)=round(x,max(0,n-floor(log(x+0^x))-1))

在德斯莫斯身上试试!

-在德斯莫斯身上试试!-装好了

我觉得这个应该管用?如果有什么问题告诉我。

票数 5
EN

Code Golf用户

发布于 2022-10-07 18:50:44

R,5字节

代码语言:javascript
复制
print

在网上试试!

总得有人去做。

票数 5
EN

Code Golf用户

发布于 2022-10-11 11:11:51

R,34字节

代码语言:javascript
复制
\(n,d)round(n,max(d-log10(n)-1,0))

在网上试试!

答案比问题长29字节.

票数 1
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/252766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档