Project

General

Profile

Actions

Bug #17214

closed

BigDecimal exponentiation gives incorrect results

Added by karatedog (Földes László) about 4 years ago. Updated about 4 years ago.

Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]
[ruby-core:100297]

Description

This is an incorrect value:

(BigDecimal("2222") ** BigDecimal("3.5")).to_i
# => 517135311000

This is the correct value (within Float precision):

2222 ** 3.5
# => 517135308457.25256

As the Base gets larger, the problem is more visible. Wrong value, number of trailing zeroes increase:

(BigDecimal("22222") ** BigDecimal("3.5")).to_i
# => 1635840670000000

Nearing maximum Float precision:

22222 ** 3.5
# => 1635840670214066.5
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0