Ниже приведен небольшой сегмент кода из моего сценария:больших числа меняют свое значение после применения операции
Логика добавляемый к тайному любому значению данных согласно значению шкалы
x = "11400000206633458812"
scale = 2
x = x.to_f/10**scale.to_i
x = x == x.to_i ? x.to_i : x
puts x
заметить, что значение «114000002066334592»
, который отличается от начального значения x.
На данный момент мои тестовые точки не работают.
x может быть любым значением. Если я использую x = 156, вывод правильный, но когда длина целого числа превышает 16 цифр, возникает проблема.
Ожидаемый выход в вышеупомянутом случае является 114000002066334588
Может кто-нибудь помочь мне, почему значение меняется, и как это исправить?
@AndreyDeineko, х на самом деле строка .. Если я использую x.to_d, он дает мне ошибку: неопределенный метод 'to_d» для "11400000206633458812": String (NoMethodError) –
_» большие целые числа меняют свое значение "_ -' x.to_f' не возвращает целое число. – Stefan