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

PHP: làm tròn số_format

In lại Tác giả: Hồ Xil Thời gian cập nhật: 2023-11-01 12:36:15 26 4
mua khóa gpt4 Nike

Xin chào, tôi đang làm tròn số thành -0 thay vì 0

gặp phải một vấn đề

Mã số:

$num= 0,000000031;

$round = number_format((float)$num, 1, '.', '');

echo $round * -1;
?>

Đầu ra:-0

Sản lượng dự kiến:0

Tôi đã tìm kiếm bất kỳ giải pháp nào nhưng không tìm thấy giải pháp nào.

Hãy giải thích và giúp tôi tại sao nó làm tròn thành -0 thay vì 0? Cảm ơn

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

Nó không làm tròn nên -0.

Biến $round trước dòng cuối cùng chứa:

chuỗi (3) "0,0"

Bạn có thể xác minh điều này bằng cách thêm dòng này:

var_dump($round);

trước tiếng vang.

Vậy nếu nhân "0.0" (chuỗi) với -1 thì kết quả sẽ là "-0"

Bởi vì (string)0 được chuyển đổi thành (float)0 trước khi nhân và tính tổng

(thả nổi)0 * -1 = -0

php5 -r 'var_dump((float)0*-1);'
nổi(-0)

Dựa trên hành vi float, điều này là hoàn toàn bình thường. (Thêm chi tiết:http://en.wikipedia.org/wiki/Signed_zero)

Nếu đây là vấn đề, bạn có thể thêm 0 để tránh "ma thuật" này:

php5 -r 'var_dump((float)0*-1+0);'
phao(0)

Về PHP: làm tròn số_format, 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/27636585/

26 4 0
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