Sha256: 0535d77ae53bf177c32fe3273959606dc8adb7f9896ae838f7a153c8fdeed7c0

Contents?: true

Size: 1.4 KB

Versions: 7

Compression:

Stored size: 1.4 KB

Contents

# frozen_string_literal: true

# :nodoc:
module Zakuro
  # :nodoc:
  module Calculation
    # :nodoc:
    module Type
      #
      # OldFloat 浮動小数点数(古代)
      #
      # @note 四捨五入は常に絶対値に対して行う
      #   * value.negative? ? value.ceil : value.floor
      #   * 絶対値だけを取り出すことで、四捨五入を平易にする
      #
      class OldFloat
        # @return [Integer] 符号
        attr_reader :sign
        # @return [Float] 絶対値
        attr_reader :abs

        #
        # 初期化
        #
        # @param [Float] value 符号つき浮動小数点数
        #
        def initialize(value)
          @sign = value.negative? ? -1 : 1
          @abs = @sign * value
        end

        #
        # 四捨五入する
        #
        def floor!
          @abs = floor
        end

        #
        # 四捨五入する(非破壊的)
        #
        # @return [Float] 絶対値
        #
        def floor
          abs.floor
        end

        #
        # 符号つき浮動小数点数を取得する
        #
        # @return [Float] 符号つき浮動小数点数
        #
        def get
          sign * abs
        end

        #
        # 負数かどうか
        #
        # @return [True] 負数
        # @return [False] 正数
        #
        def negative?
          @sign == -1
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
zakuro-1.0.0 lib/zakuro/calculation/type/old_float.rb
zakuro-0.9.4 lib/zakuro/calculation/type/old_float.rb
zakuro-0.9.3 lib/zakuro/calculation/type/old_float.rb
zakuro-0.9.2 lib/zakuro/calculation/type/old_float.rb
zakuro-0.9.1 lib/zakuro/calculation/type/old_float.rb
zakuro-0.9.0 lib/zakuro/calculation/type/old_float.rb
zakuro-0.8.0 lib/zakuro/calculation/type/old_float.rb