[ruby-core:91143] Re: [Ruby trunk Bug#15544] sprintf returns an unexpected string

From: Austin Ziegler <halostatue@...>
Date: 2019-01-17 20:14:47 UTC
List: ruby-core #91143
#include <stdio.h>


int main(int argc, char *argv[]) {

  printf("%.16g\n", 8.78);

}


compile and run this and you will get the same result.


The problem is floating-point values cannot be represented in binary
exactly.


https://developers.slashdot.org/story/10/05/02/1427214/what-every-programmer-should-know-about-floating-point-arithmetic


-a

On Thu, Jan 17, 2019 at 2:52 PM <andre.kullmann@googlemail.com> wrote:

> Issue #15544 has been reported by areman01 (Andrテゥ Kullmann).
>
> ----------------------------------------
> Bug #15544: sprintf returns an unexpected string
> https://bugs.ruby-lang.org/issues/15544
>
> * Author: areman01 (Andrテゥ Kullmann)
> * Status: Open
> * Priority: Normal
> * Assignee:
> * Target version:
> * ruby -v: ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-linux]
> * Backport: 2.4: UNKNOWN, 2.5: UNKNOWN, 2.6: UNKNOWN
> ----------------------------------------
> Hello,
>
> I've a little problem with the sprintf function. It returns unexpected
> results ( in my opinion )
>
> ``` ruby
> sprintf("%.16g", 8.78)
> # returns "8.779999999999999"
> # my expected result is "8.78"
> ```
>
> Can somebody explain this behavior to me ?
>
> Best Begards
>
>
>
> --
> https://bugs.ruby-lang.org/
>
> Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>
>


-- 
Austin Ziegler 窶「 halostatue@gmail.com 窶「 austin@halostatue.ca
http://www.halostatue.ca/ 窶「 http://twitter.com/halostatue

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next