ruby是否具有与Java的BigDecimal.setScale(6,Round_half_up)等价的任何内置函数?我需要从浮点数中取6个十进制值,并根据小数点后的7进行取整。ruby是否等价于Java的BigDecimal.setScale(6,Round_half_up)
回答
您可能在寻找Float#round,它有两个参数:一个十进制数字和half
关键字指定的方向(向上舍入是默认值)。
1.23456789.round(6, half: :up)
=> 1.234568
在Ruby 2.4之前,您无法指定舍入方向 - 它总是舍入。 Heroku's "Ruby 2.4 Released: Faster Hashes, Unified Integers and Better Rounding"涵盖了一些更详细的变化。
BigDecimal可帮助您更准确地执行这些计算(即避免浮点算术错误)。同样,四舍五入为默认值,但可以明确指定:
big_decimal = BigDecimal("1.23456789")
big_decimal.round(6, BigDecimal::ROUND_HALF_UP).to_f
=> 1.234568
这里有一个问题:Java的BigDecimal的精确值,Ruby的浮动已经普遍知道的功能/精确度问题,内部for和字符之间的转换等... –
@JacekCz Ruby的'BigDecimal'就像Java有'float'一样,每种语言都有浮点精度。旁注:上面的答案只适用于Ruby> = 2.4 – engineersmnky
非常有效,谢谢!我已经编辑了答案,以包含这些点的例子。 – jpn
- 1. Vimscript是否等价于Ruby的`any?'
- 2. Ruby中的Java CLASSPATH等价于什么?
- 3. java等价于ruby的|| ||语法
- 4. Java .properties文件等价于Ruby?
- 5. 是否有“python -i”的ruby等价物?
- 6. Java的Ruby等价物ObjectSpace.each_object
- 7. python等价于ruby的__method__?
- 8. Ruby等价于Python的DictWriter?
- 9. python等价于ruby的`map.with_index`?
- 10. python等价于ruby的StringScanner?
- 11. 它是否存在Java的Wicket的Ruby等价物?
- 12. Ruby on Rails的“url_for”是否有Java的等价物?
- 13. 是否有一个等价于PHP spl_autload_register的ruby?
- 14. Ruby ::等价于Tie :: FIle?
- 15. PL/Ruby等价于MySQL
- 16. java等价于mkstemp
- 17. 是否有.Net System.Data的Java等价物?
- 18. excel vlookup是否有Java的等价物?
- 19. 什么是C#等价于Java的isInstance()?
- 20. java等价于swfobject的
- 21. Java的readInt()等价于C?
- 22. 等价于python“dir”的Java?
- 23. 是否有一个C#等价于Java的CountDownLatch?
- 24. 在Java中是否有TweenMax等价物
- 25. Ruby的等价于PHP的ucfirst()函数
- 26. Ruby的等价于C#的??运营商
- 27. Ruby的等价于PHP的“get_defined_vars”函数?
- 28. #define是否等价于一个函数?
- 29. 是否有.Net等价于java.util.concurrent.Executor?
- 30. AsynchronousFileChannel是否有等价于transferTo?
谢谢大家回答我的问题.. – Satish