cuốn sách gpt4 ai đã làm

Ruby BigDecimal làm tròn

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 17:03:59 28 4
mua khóa gpt4 Nike

Tôi muốn làm tròn BigDecimal đến hai chữ số thập phân, nhưng khi sử dụng phương thức làm tròn, nó dường như không làm tròn gấp đôi:

BigDecimal.new('43382.0249').round(2).to_s('F'). Should == '43382.03'

Nhưng thay vào đó tôi nhận được kết quả: 43382.02

Tôi cũng đã thử tất cả các chế độ làm tròn có sẵn khác,ROUND_UP Có vẻ như thực hiện được công việc nhưng nó làm rối các kịch bản làm tròn khác, chẳng hạn như "670.1541" trở thành "670.16" (không chính xác) thay vì "670.15" (đúng)

câu trả lời hay nhất

Câu trả lời đúng:Những gì bạn đang làm được gọi là "làm tròn sáng tạo". Nếu bạn làm việc trên hệ thống kế toán, điều này còn được gọi là "lừa đảo". Bạn không nên "tròn trịa" như thế này.

Câu trả lời bạn đang tìm kiếm:

Bạn có thể thực hiện việc này bằng thuật toán thực hiện như sau:

x = số chữ số thập phân bạn muốn xem xét
y = số thập phân bạn muốn để lại sau khi hoàn thành
trong khi( x >= y )
làm tròn số của bạn đến x vị trí
x = x-1

Vì vậy, trong hồng ngọc:

my_num = 1,2349
x = 100
y=2
x.downto y do |i|
my_num = my_num.round i
end
đặt my_num

Điều này mang lại cho chúng ta 1,24 và nếu my_num là 1,2341, nó mang lại cho chúng ta 1,23.

Hãy sử dụng một cách khôn ngoan nếu có thể?

Về làm tròn Ruby BigDecimal, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/10090728/

28 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress