如何检查数字是否有小数?

Shp*_*ord 11 ruby

我想专门检查给定的数字是否包含".5"

我只处理整数和一半(0.5,1,1.5等).

kar*_*ikr 28

% 应该管用

%

检查这个小提琴

编辑:这是一个红宝石

  • 是的,但为了帮助所有社区,最好提供一个通用解决方案。(OP是什么意思?)。 (2认同)

Ste*_*fan 9

始终用于BigDecimal检查数字的小数部分以避免浮点错误:

require 'bigdecimal'

BigDecimal.new(number).frac == BigDecimal("0.5")
Run Code Online (Sandbox Code Playgroud)

例如:

BigDecimal.new("0.5").frac == BigDecimal("0.5")
# => true

BigDecimal.new("1.0").frac == BigDecimal("0.5")
# => false
Run Code Online (Sandbox Code Playgroud)

一个更通用的解决方案,看看一个数字是否完整:

BigDecimal.new("1.000000000000000000000000000000000000000001").frac.zero?
# => false
Run Code Online (Sandbox Code Playgroud)


pau*_*aul 7

myValue == myValue.floor

或者如果你真的想特别检查0.5,1.5等

myValue - myValue.floor == 0.5