Bcadd php
Tham số Show Giá trị trả vềTrả về 0 nếu hai toán hạng bằng nhau, 1 nếu MongoDB 3. 4 đã giới thiệu hỗ trợ cho loại Decimal128 BSON, là giá trị dấu phẩy động dựa trên số thập phân 128 bit có khả năng mô phỏng làm tròn số thập phân với độ chính xác chính xác. Chức năng này dành cho các ứng dụng xử lý dữ liệu tiền tệ, chẳng hạn như tính toán tài chính và thuế Lớp MongoDBBSONDecimal128, được giới thiệu trong trình điều khiển PHP 1. 2. 0, có thể được sử dụng để làm việc với loại này trong PHP Làm việc với các giá trị thập phân128Chèn một số thập phân128Ví dụ sau chèn một giá trị kiểu object(MongoDB\Model\BSONDocument)#9 (1) { ["storage":"ArrayObject":private]=> array(3) { ["_id"]=> int(1) ["item"]=> string(15) "26-inch monitor" ["price"]=> object(MongoDB\BSON\Decimal128)#13 (1) { ["dec"]=> string(6) "428.79" } } }0 của bộ sưu tập có tên object(MongoDB\Model\BSONDocument)#9 (1) { ["storage":"ArrayObject":private]=> array(3) { ["_id"]=> int(1) ["item"]=> string(15) "26-inch monitor" ["price"]=> object(MongoDB\BSON\Decimal128)#13 (1) { ["dec"]=> string(6) "428.79" } } }1
$collection = (new MongoDB\Client)->test->inventory;
$collection->insertOne([
'_id' => 1,
'item' => '26-inch monitor',
'price' => new MongoDB\BSON\Decimal128('428.79'),
]);
$item = $collection->findOne(['_id' => 1]);
var_dump($item);
Đầu ra sau đó sẽ giống như object(MongoDB\Model\BSONDocument)#9 (1) { ["storage":"ArrayObject":private]=> array(3) { ["_id"]=> int(1) ["item"]=> string(15) "26-inch monitor" ["price"]=> object(MongoDB\BSON\Decimal128)#13 (1) { ["dec"]=> string(6) "428.79" } } } Phép toán với BCMathTrình điều khiển PHP không cung cấp bất kỳ chức năng nào để làm việc với các giá trị Ví dụ sau thêm hai giá trị
$lhs = new MongoDB\BSON\Decimal128('1.234');
$rhs = new MongoDB\BSON\Decimal128('5.678');
$sum = new MongoDB\BSON\Decimal128(bcadd($lhs, $rhs));
var_dump($sum);
Đầu ra sau đó sẽ giống như object(MongoDB\BSON\Decimal128)#4 (1) { ["dec"]=> string(1) "6" } Điều này không phù hợp với kết quả mong đợi của “6. 912”. Mỗi hoạt động trong BCMath API sử dụng một tỷ lệ để xác định số chữ số thập phân trong kết quả. Tỷ lệ mặc định là 0, đó là lý do tại sao ví dụ trên tạo ra kết quả không có độ chính xác thập phân Trong ví dụ sau, chúng tôi sử dụng thang điểm ba cho bcadd() để thu được kết quả như mong đợi
$lhs = new MongoDB\BSON\Decimal128('1.234');
$rhs = new MongoDB\BSON\Decimal128('5.678');
$sum = new MongoDB\BSON\Decimal128(bcadd($lhs, $rhs, 3));
var_dump($sum);
Đầu ra sau đó sẽ giống như object(MongoDB\BSON\Decimal128)#4 (1) { ["dec"]=> string(5) "6.912" } Thay vì chỉ định tỷ lệ cho từng hoạt động, tỷ lệ mặc định có thể được đặt qua bcscale() hoặc bcmath. cài đặt INI theo tỷ lệ. Loại |