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