Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Menghuraikan Nilai Monetari Tidak Berformat dalam PHP?

Bagaimana Menghuraikan Nilai Monetari Tidak Berformat dalam PHP?

Barbara Streisand
Barbara Streisandasal
2024-11-12 22:27:01410semak imbas

How to Parse Unformatted Monetary Values in PHP?

Menghuraikan Nilai Monetari Tidak Berformat dalam PHP

Apabila cuba menghuraikan nilai kewangan yang diwakili sebagai rentetan, seperti "75,25 €," ke dalam setara angka mereka, pergantungan pada hanya menggunakan kaedah parsefloat() mungkin tidak selalu mencukupi. Untuk menangani had ini dan memastikan fleksibiliti merentas lokasi dan format pemisah yang berbeza, penyelesaian yang lebih rumit diperlukan.

Penyelesaian ini memanfaatkan ungkapan biasa untuk mengekstrak nilai berangka dengan mengambil kira pelbagai pemisah dan format yang mungkin digunakan dalam jumlah kewangan. Memandangkan rentetan input, aksara yang tidak diperlukan mula-mula dialih keluar menggunakan preg_replace(). Operasi regex seterusnya mengenal pasti dan mengalih keluar pemisah dan ribuan pemisah, menghasilkan rentetan berangka.

Akhir sekali, rentetan yang dibersihkan tertakluk kepada operasi str_replace() standard untuk menyatukan pemisah perpuluhan sebagai tempoh sebelum menghantar ke apungan menggunakan (terapung). Pendekatan komprehensif ini mengendalikan kedua-dua titik dan koma sebagai pemisah perpuluhan, memastikan penghuraian yang tepat tanpa mengira tempat.

Berikut ialah contoh untuk menggambarkan proses:

<?php

function getAmount($money)
{
    $cleanString = preg_replace('/([^0-9\.,])/i', '', $money);
    $onlyNumbersString = preg_replace('/([^0-9])/i', '', $money);

    $separatorsCountToBeErased = strlen($cleanString) - strlen($onlyNumbersString) - 1;

    $stringWithCommaOrDot = preg_replace('/([,\.])/', '', $cleanString, $separatorsCountToBeErased);
    $removedThousandSeparator = preg_replace('/(\.|,)(?=[0-9]{3,}$)/', '',  $stringWithCommaOrDot);

    return (float) str_replace(',', '.', $removedThousandSeparator);
}

Dengan pendekatan ini, anda boleh yakin menghuraikan rentetan monetari yang tidak diformat, mendapatkan nilai angka yang boleh dipercayai tanpa mengira bahasa dan konvensyen pemformatan.

Atas ialah kandungan terperinci Bagaimana Menghuraikan Nilai Monetari Tidak Berformat dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn