test/test_define_conversions.rb in ruby-decimal-0.2.0 vs test/test_define_conversions.rb in ruby-decimal-0.2.1
- old
+ new
@@ -93,8 +93,20 @@
assert_equal Decimal('7.1'), Decimal('7')+0.1
end
assert_equal Decimal('11'), Decimal(11.0)
assert Decimal(11.0).is_a?(Decimal)
+ Decimal.context.define_conversion_from(Float) do |x, context|
+ Decimal.context(context, :exact=>true) do
+ s,e = Math.frexp(x)
+ s = Math.ldexp(s, Float::MANT_DIG).to_i
+ e -= Float::MANT_DIG
+ Decimal(s*(Float::RADIX**e))
+ end
+ end
+
+ assert_equal '0.1000000000000000055511151231257827021181583404541015625', Decimal(0.1).to_s
+ assert_equal '1.100000000000000088817841970012523233890533447265625', Decimal(1.1).to_s
+
end
end
\ No newline at end of file