例如,如果我想讓987等於「900」。我如何總是在Ruby中舍入一個數字?
回答
n = 987
m = 2
n.floor(-m)
#=> 900
參見Integer#floor:「當精度是否定的,則返回的值是與至少ndigits.abs
尾隨零的整數。」
或
(n/10**m) * 10**m
#=> 900
'n.round(-m)'給我1,000而不是900.可以使用'n.floor(-m)',它更好地處理「負面情況」 –
@SimpleLime,是的,我注意到'n。圓(米)',所以回滾到我原來的答案。我會添加你的建議。謝謝。 –
不知道你可以將負面信息傳遞給這些方法,直到我看到你的信息,並且你已經在幾分鐘內來回地看到了一些變化,所以如果發佈我自己的答案,就會感到不誠實在你的答案的一些編輯歷史中的小細節 –
可以使用對數計算出最佳多的分。
def round_down(n)
log = Math::log10(n)
multip = 10 ** log.to_i
return (n/multip).to_i * multip
end
[4, 9, 19, 59, 101, 201, 1500, 102000].each { |x|
rounded = round_down(x)
puts "#{x} -> #{rounded}"
}
結果:
4 -> 4
9 -> 9
19 -> 10
59 -> 50
101 -> 100
201 -> 200
1500 -> 1000
102000 -> 100000
這招是非常方便的,當你需要計算甚至打勾間距的圖形。
- 1. 第一個小數總是舍入
- 2. 爲什麼(長)總是舍入數字?
- 3. 在Ruby中舍入一個浮點值
- 4. 總是向上舍入一個雙倍
- 5. 總是舍入一個C#值
- 6. 如何在ocaml中舍入數字?
- 7. 如何在Twig中舍入一個值
- 8. 在Java中,我如何將一個數字舍入到任意精度級別?
- 9. 計算總是舍入的
- 10. 如何總是將一個數字向上舍入到最近的一分錢中使用Javascript
- 11. NHibernate總是四捨五入到整數
- 12. 如何總是以小數點後兩位數進行舍入
- 13. Python舍入了一個數字,但我想要的數字是精確的
- 14. 總計超過兩個時,Javascript中舍入數字失敗?
- 15. 在SQL Server 2005中總是舍入數字的最簡單方法是什麼?
- 16. 不捨入到一個數字
- 17. 舍入到下一個有效數字
- 18. 舍入到一個有效數字,VB
- 19. 如何將數字四捨五入到下一個半整數?
- 20. 在給定的一組值中舍入一個數字
- 21. Ruby中四捨五入不一致?
- 22. 如何在python中四捨五入取得兩個數字
- 23. 我如何在calc中舍入值?
- 24. 如何在Ruby On Rails中將動態精度的數字進行舍入?
- 25. Ruby中的舍入(Rails)
- 26. Ruby中的舍入浮點數
- 27. 如何在javascript中舍入到下一個倍數?
- 28. 如何將數字向下舍入到一個範圍
- 29. 在字典中舍入浮點數字
- 30. C:我如何總是將一個數字加起來
歡迎來到SO。我建議閱讀stackoverflow.com/help/how-to-ask。它會幫助你寫出可靠的問題,從而產生(希望)好的答案。你想讓這個數字下降併成爲一個字符串嗎? – orde
你好,感謝您的熱烈歡迎!其實,我希望它是一個數字。 –