我正在打印小數點後面的即時16位數字。我有這個:打印出16位十進制數字
"%.16f" % rand => "0.3179239550385533"
但是,這會打印出小數點和前導零。任何方式來做一個字符串格式,只會做十進制數字?謝謝!
我正在打印小數點後面的即時16位數字。我有這個:打印出16位十進制數字
"%.16f" % rand => "0.3179239550385533"
但是,這會打印出小數點和前導零。任何方式來做一個字符串格式,只會做十進制數字?謝謝!
你不需要使用%
來得到一個字符串,你可以用to_s
逃脫。然後,下標串丟掉前兩個字符:
rand.to_s[2..-1]
,如果你需要16個字符,這會碰到一個問題,但rand
給你的東西,適合在較小。如果你需要擔心的是,回去%
但保留下標:
("%.16f" % rand)[2 .. -1]
例如:
>> ("%.16f" % 0.23)[2 .. -1]
=> "2300000000000000"
>> ("%.16f" % rand)[2 .. -1]
=> "1764617676514221"
>> rand.to_s[2 .. -1]
=> "339851294100813"
>> "0.354572286096131"[2 .. -1]
=> "354572286096131"
您可以嘗試將數字乘以10^16,然後將其四捨五入爲整數並將其打印爲整數。
爲什麼不能在0到10的16次方創建一個隨機整數 - 1?
rand(10**16)
或
"%016d" % rand(10**16)