From: naruse@... Date: 2014-08-15T16:14:59+00:00 Subject: [ruby-core:64394] [ruby-trunk - Bug #10136] printf("%.60f\n", 0.1r) shows 0.100000000000000005551115123125782702118158340454101562500000 Issue #10136 has been updated by Yui NARUSE. Related to Bug #10135: Time.at is inaccurate added ---------------------------------------- Bug #10136: printf("%.60f\n", 0.1r) shows 0.100000000000000005551115123125782702118158340454101562500000 https://bugs.ruby-lang.org/issues/10136#change-48356 * Author: Akira Tanaka * Status: Open * Priority: Normal * Assignee: * Category: * Target version: * ruby -v: ruby 2.2.0dev (2014-08-15 trunk 47187) [x86_64-linux] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- printf shows 0.1r (rational) not 0.1 as follows. ``` % ./ruby -ve 'printf "%.60f\n", 0.1r' ruby 2.2.0dev (2014-08-15 trunk 47187) [x86_64-linux] 0.100000000000000005551115123125782702118158340454101562500000 ``` It seems printf converts the rational argument to a float. I expect 0.100000000000000000000000000000000000000000000000000000000000 instead of 0.100000000000000005551115123125782702118158340454101562500000. -- https://bugs.ruby-lang.org/