method

screen_data

v1_8_7_330 - Show latest stable - Class: XSD::XSDDouble
screen_data(value)
private

No documentation available.

# File lib/xsd/datatypes.rb, line 378
  def screen_data(value)
    # "NaN".to_f => 0 in some environment.  libc?
    if value.is_a?(Float)
      return value
    end
    str = value.to_s.strip
    if str == 'NaN'
      NaN
    elsif str == 'INF'
      POSITIVE_INF
    elsif str == '-INF'
      NEGATIVE_INF
    else
      begin
        return Float(str)
      rescue ArgumentError
        # '1.4e' cannot be parsed on some architecture.
        if /e\z/i =~ str
          begin
            return Float(str + '0')
          rescue ArgumentError
            raise ValueSpaceError.new("#{ type }: cannot accept '#{ str }'.")
          end
        else
          raise ValueSpaceError.new("#{ type }: cannot accept '#{ str }'.")
        end
      end
    end
  end