Tôi đang gặp vấn đề làm tròn. Tôi có một phao, mà tôi muốn làm tròn đến hàng trăm thập phân. Tuy nhiên, tôi chỉ có thể sử dụng .round
mà về cơ bản biến nó thành một int, có nghĩa 2.34.round # => 2.
Có tác dụng cách đơn giản để làm điều gì đó như 2.3465 # => 2.35
Làm tròn phao trong Ruby
Trả lời
Khi hiển thị, bạn có thể sử dụng (ví dụ)
>> '%.2f' % 2.3465
=> "2.35"
Nếu bạn muốn lưu trữ nó tròn, bạn có thể sử dụng
>> (2.3465*100).round/100.0
=> 2.35
câu trả lời tuyệt vời cảm ơn bạn, tôi biết có một cách đơn giản để làm nó. – user211662
Cảm ơn. Tôi đã không nhận ra chạy nước rút sẽ chăm sóc làm tròn cho tôi. 'sprintf '% .2f', 2.3465' cũng hoạt động. –
value.round (2) là tốt hơn so với giải pháp này –
những gì về (2.3465*100).round()/100.0
?
Vượt qua một cuộc tranh cãi để làm tròn chứa số chữ số thập phân làm tròn đến
>> 2.3465.round
=> 2
>> 2.3465.round(2)
=> 2.35
>> 2.3465.round(3)
=> 2.347
Điều này có vẻ hợp lý hơn nhân, làm tròn và chia. +1 –
Hmm phương pháp này dường như không có trong ruby 1.8.7. Có lẽ trong 1.9? –
@Brian. Điều này chắc chắn là 1,9 và cũng nằm trong đường ray (Câu hỏi này được gắn thẻ) –
Bạn có thể thêm một phương pháp trong phao Class, tôi học được điều này từ stackoverflow:
class Float
def precision(p)
# Make sure the precision level is actually an integer and > 0
raise ArgumentError, "#{p} is an invalid precision level. Valid ranges are integers > 0." unless p.class == Fixnum or p < 0
# Special case for 0 precision so it returns a Fixnum and thus doesn't have a trailing .0
return self.round if p == 0
# Standard case
return (self * 10**p).round.to_f/10**p
end
end
def rounding(float,precision)
return ((float * 10**precision).round.to_f)/(10**precision)
end
Đối với ruby 1.8.7, bạn có thể thêm thông tin sau vào mã của mình:
class Float
alias oldround:round
def round(precision = nil)
if precision.nil?
return self
else
return ((self * 10**precision).oldround.to_f)/(10**precision)
end
end
end
Nếu bạn chỉ cần hiển thị nó, tôi sẽ sử dụng trình trợ giúp number_with_precision. Nếu bạn cần nó ở một nơi khác tôi sẽ sử dụng, như Steve weet chỉ, các round
phương pháp
Lưu ý rằng 'number_with_precision' là phương thức Rails-only. – Smar
Bạn cũng có thể cung cấp một số tiêu cực như một cuộc tranh cãi với phương pháp round
làm tròn đến bội số gần nhất của 10, 100 và vân vân .
# Round to the nearest multiple of 10.
12.3453.round(-1) # Output: 10
# Round to the nearest multiple of 100.
124.3453.round(-2) # Output: 100
bạn có thể sử dụng điều này để làm tròn đến một precison ..
//to_f is for float
salary= 2921.9121
puts salary.to_f.round(2) // to 2 decimal place
puts salary.to_f.round() // to 3 decimal place
- 1. Làm tròn giá trị phao
- 2. làm tròn phao lên $ 0,01 trong python
- 3. Làm tròn các phao nổi với ostringstream
- 4. Làm thế nào để làm tròn một phao trong F #?
- 5. Làm tròn phao lên số nguyên tiếp theo trong javascript
- 6. Làm tròn số phao trong mục tiêu-c
- 7. Làm thế nào tôi có thể làm tròn một phao?
- 8. Làm tròn phao cho yếu tố gần nhất?
- 9. làm tròn không đúng phao khi sử dụng ToString ("F1")
- 10. Cách viết hoa văn và số tròn trong ruby
- 11. Phân công vòng tròn trong Ruby
- 12. Ruby kiểm tra nếu số chẵn, phao
- 13. Làm tròn một phao lên đến số nguyên tiếp theo trong mục tiêu C?
- 14. tôi cần phải làm tròn một phao đến hai chữ số thập phân trong Java
- 15. Vòng tròn Ruby to_int nếu toàn bộ số
- 16. Chuyển đổi kép thành phao mà không dựa vào chế độ làm tròn FPU
- 17. Chuyển đổi một phao sang một chuỗi mà không làm tròn nó
- 18. Cách để làm nổi các phao xuống
- 19. Cách chuyển đổi một phao sang Int bằng cách làm tròn đến số nguyên gần nhất
- 20. Cuộn tròn trên Ruby on Rails
- 21. Làm tròn số NSDecimalNumber
- 22. Có một chức năng để làm tròn một phao trong C hay tôi cần phải viết của riêng mình?
- 23. C++: Làm thế nào để chuyển đổi từ phao sang chuỗi mà không làm tròn, cắt xén hoặc đệm?
- 24. Làm thế nào để làm tròn gấp đôi số nguyên gần nhất và sau đó chuyển sang dạng phao?
- 25. printf số biến thập phân trong phao
- 26. Số phao giữa hai phao
- 27. Làm tròn lên đến 0,05 gần nhất trong JavaScript
- 28. Số làm tròn trong Twig
- 29. Số phao trong Java
- 30. Chia phao thành số nguyên và số thập phân trong Ruby
'2.3465.round (2) => 2.35' – Magne