-1
下面是代碼從我的腳本的小片段:大整數塗布操作之後改變其值
加入的邏輯是隱蔽的任何數據值按比例值
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實際上是一個字符串。如果我使用x.to_d,它給我的錯誤:未定義的方法'to_d」爲 「11400000206633458812」:字符串(NoMethodError) –
_」大整數更改它們的值「_ - 'x.to_f'不返回整數。 – Stefan