Тип BigFloat

alextretyak

Administrator
Staff member
А что вы имеете в виду под BigFloat?
Вот одна из сторонних реализаций BigFloat для C#:
C#:
class BigFloat : IComparable, IComparable<BigFloat>, IEquatable<BigFloat>
{
    private BigInteger numerator;
    private BigInteger denominator;

...
}
Такая реализация соответствует типу Fraction в 11l.

В Java есть BigDecimal, который полезен для финансовых расчётов.

А для каких задач вам нужен BigFloat?
 

fawgio

New member
Такая реализация соответствует типу Fraction в 11l.
А можно пример, как использовать тип Fraction? В документации нету.

А для каких задач вам нужен BigFloat?
Для хранения больших вещественных чисел, чтобы не было вот так:
Code:
Float my = 123456789123456789.123456789123456789
print(my) //Output: 123457000000000000
 

alextretyak

Administrator
Staff member
А можно пример, как использовать тип Fraction?
Code:
var my = Fraction(BigInt(‘123456789123456789123456789123456789’),
                                   BigInt(‘1000000000000000000’))
print(my)
print(Float(my))

fn fraction_as_decimal_string(f, digits)
   var s = String(f.numerator * BigInt(10)^digits I/ f.denominator)
   s.insert(s.len - digits, ‘.’)
   return s
print(fraction_as_decimal_string(my, 18))
(Только я немного обновил транспайлер 11l, чтобы этот код работал.)

Fraction поддерживает операции +, -, * и /. Если нужно что-то ещё, могу добавить.
 
Last edited:
Top