2010-03-29 34 views
47

Chỉ cần tự hỏi trong php, nếu nó đã có thể chuyển đổi một chuỗi thành một đôi. Tôi đang sử dụng dịch vụ web tài chính cung cấp giá dưới dạng chuỗi. Tôi thực sự cần phải xử lý này như một đôi và đã tự hỏi làm thế nào tôi sẽ chuyển đổi nóChuyển đổi chuỗi thành gấp đôi - điều này có khả thi không?

nhờ

+26

** Không sử dụng dấu phẩy động cho mã giao dịch tiền tệ. ** – kennytm

+1

Tôi nên làm gì với nó? – csU

+4

Số nguyên. Sử dụng xu hoặc đơn vị tốt hơn. – kennytm

Trả lời

86

Chỉ cần sử dụng floatval().

ví dụ .:

$var = '122.34343'; 
$float_value_of_var = floatval($var); 
echo $float_value_of_var; // 122.34343 

Và trong trường hợp bạn tự hỏi doubleval() chỉ là một bí danh cho floatval().

Và như người kia nói, trong một ứng dụng tài chính, các giá trị nổi là rất quan trọng vì chúng không đủ chính xác. Ví dụ. thêm hai phao có thể dẫn đến một cái gì đó như 12.30000000001 và lỗi này có thể lan truyền.

+0

Hoạt động tốt trong 5.4 và vô hiệu hóa chuỗi + cảnh báo chuỗi trong IDE – Shane

2

Sử dụng doubleval(). Nhưng hãy cẩn thận khi sử dụng số thập phân trong các giao dịch tài chính và xác thực rằng người dùng nhập rất cẩn thận.

13

Đối với toán học chính xác tùy ý, PHP cung cấp Máy tính nhị phân hỗ trợ các số có kích thước và độ chính xác bất kỳ, được biểu diễn dưới dạng chuỗi.

$s = '1234.13'; 
$double = bcadd($s,'0',2); 

PHP: bcadd

+0

20 năm làm việc với PHP và vẫn đang học các chức năng mới mẻ! +1! –

0

Tại sao floatval lựa chọn tốt nhất cho dữ liệu so sánh về tài chính? bc chức năng chỉ chính xác biến chuỗi thành số thực.

Các vấn đề liên quan