查看: 2985|回复: 9

[已经解决] 把浮点数的小数点精确到两位怎么做

[复制链接]
梦石
0
星屑
665
在线时间
50 小时
注册时间
2018-6-27
回帖
30
发表于 2018-8-28 15:48:17 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
把浮点数的小数点精确到两位怎么做
梦石
2
星屑
13779
在线时间
2319 小时
注册时间
2011-6-4
回帖
586
发表于 2018-8-28 16:50:06 | 显示全部楼层
本帖最后由 真·可乐 于 2018-8-28 18:12 编辑

不知道Ruby有没有专门的精确到某一位的方法,不过精确到小数点后两位可以这样实现
[pre lang="ruby"]
#舍尾
a = 102.2374
a *= 100
a = a.floor.to_f/100
#最终a的值是102.23

#四舍五入
a = 102.2374
a *= 100
a = a.round.to_f/100
#最终a的值是102.24

[/pre]

点评

好吧XP的Ruby版本太低了,round方法不接受参数,只好这样写了  发表于 2018-8-28 18:40
不建议这样写,性能不佳  发表于 2018-8-28 18:30

评分

参与人数 1星屑 +50 收起 理由
RyanBern + 50 认可答案

查看全部评分

BUG反馈请加QQ 529283039
水友群 917854767

回复 1 0

使用道具 举报

梦石
0
星屑
665
在线时间
50 小时
注册时间
2018-6-27
回帖
30
 楼主| 发表于 2018-8-28 17:17:19 | 显示全部楼层
真·可乐 发表于 2018-8-28 16:50
不知道Ruby有没有专门的精确到某一位的方法,想要精确到小数点后两位可以这样

#舍尾

哇,感谢
回复

使用道具 举报

梦石
0
星屑
1944
在线时间
404 小时
注册时间
2015-8-30
回帖
322
发表于 2018-8-28 19:19:51 | 显示全部楼层
唉XP就是蛋疼,Ruby版本那么低
在VA里面可以直接写
  1. 1.2345.round(2) # => 1.23
复制代码
小仙女一枚~
回复

使用道具 举报

梦石
0
星屑
14555
在线时间
22062 小时
注册时间
2010-10-24
回帖
302
发表于 2018-8-28 22:28:29 | 显示全部楼层
  1. a = format("%.2f", 123.456)
  2. b = a.to_f
  3. p a,a.class
  4. p b,b.class
复制代码

不知道ruby版本的差别
噫
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45699
在线时间
7948 小时
注册时间
2009-7-6
回帖
13337

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2018-8-29 09:26:51 | 显示全部楼层
  1. a = 3.14159265358
  2. p (a*100).to_i/100.0
复制代码


不是简单的运算吗。

点评

黄鸡没有给pi进位已经暗示了用to_i了  发表于 2018-8-29 10:37
不建议用to_i,用round比较好,我觉得  发表于 2018-8-29 10:29
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部