Saya sama sekali tidak terbiasa dengan PHP dan memiliki pertanyaan singkat.
Saya memiliki 2 variabel pricePerUnit
dan InvoicedUnits
. Berikut kode yang mengatur ini ke nilai:
$InvoicedUnits = ((string) $InvoiceLineItem->InvoicedUnits);
$pricePerUnit = ((string) $InvoiceLineItem->PricePerUnit);
Jika saya mengeluarkan ini, saya mendapatkan nilai yang benar. Katakanlah 5000
unit yang ditagih dan 1.00
untuk harga.
Sekarang, saya perlu menunjukkan jumlah total yang dibelanjakan. Ketika saya mengalikan keduanya bersama-sama, itu tidak berfungsi (seperti yang diharapkan, ini adalah string).
Tapi saya tidak tahu bagaimana mengurai / cast / mengkonversi variabel di PHP.
Apa yang harus saya lakukan?
VARCHAR>11
panjangnya .. belum mempersempit tepatnya mengapa.Anda ingin non-lokal-sadar
floatval
fungsi :Contoh:
sumber
(float)
pengubahan di server pertama menjadi "," dan yang kedua menjadi ","Nah, jika pengguna menulis 1,00,000 maka floatvar akan menampilkan error. Jadi -
Ini jauh lebih dapat diandalkan.
Penggunaan:
sumber
$string=preg_replace("/[^0-9\.\-]/","",$string);
Berurusan dengan markup di float adalah tugas yang tidak sepele. Dalam notasi Inggris / Amerika Anda memformat seribu plus
46*10-2
:Tetapi di Jerman Anda akan mengubah koma dan titik:
Ini membuatnya sangat sulit menebak angka yang tepat dalam aplikasi multi-bahasa.
Saya sangat menyarankan penggunaan
Zend_Measure
Zend Framework untuk tugas ini. Komponen ini akan mengurai string menjadi float menurut bahasa pengguna.sumber
intl
ekstensi.Gunakan fungsi ini untuk mentransmisikan nilai float dari semua jenis gaya teks:
Solusi ini tidak bergantung pada pengaturan lokal mana pun. Jadi untuk input pengguna, pengguna dapat mengetikkan nilai float dengan cara apa pun yang mereka suka. Ini sangat membantu misalnya ketika Anda memiliki proyek yang hanya dalam bahasa Inggris tetapi orang-orang di seluruh dunia menggunakannya dan mungkin tidak berpikir bahwa proyek tersebut menginginkan sebuah titik, bukan koma untuk nilai float. Anda dapat membuang javascript ke dalam campuran dan mengambil pengaturan default browser tetapi masih banyak orang yang menetapkan nilai-nilai ini ke bahasa Inggris tetapi masih mengetik 1,25 daripada 1,25 (terutama tetapi tidak terbatas pada industri terjemahan, penelitian, dan TI)
sumber
Saya mengalami masalah dengan cara standar untuk melakukan ini:
Jika tidak ada angka yang valid, parser tidak boleh mengembalikan angka, itu akan memunculkan kesalahan. (Ini adalah kondisi yang saya coba tangkap dalam kode saya, YMMV)
Untuk mengatasinya, saya telah melakukan hal berikut:
Kemudian sebelum memproses konversi lebih lanjut, saya dapat memeriksa dan mengembalikan kesalahan jika tidak ada parse yang valid dari string tersebut.
sumber
Jika Anda perlu menangani nilai yang tidak dapat dikonversi secara terpisah, Anda dapat menggunakan metode ini:
sumber
Anda dapat mengikuti tautan ini untuk mengetahui lebih lanjut tentang Cara mengubah string / angka menjadi angka / float / desimal di PHP. DI SINI APA YANG LINK INI KATAKAN ...
Metode 1: Menggunakan Fungsi number_format (). Fungsi number_format () digunakan untuk mengubah string menjadi angka. Ini mengembalikan nomor yang diformat pada kesuksesan jika tidak memberikan E_WARNING pada kegagalan.
Metode 2: Menggunakan tipe casting: Typecasting dapat langsung mengubah string menjadi tipe primitif float, double, atau integer. Ini adalah cara terbaik untuk mengubah string menjadi angka tanpa fungsi apa pun.
Metode 3: Menggunakan Fungsi intval () dan floatval (). Fungsi intval () dan floatval () juga dapat digunakan untuk mengubah string menjadi nilai integer dan float yang sesuai.
Metode 4: Dengan menambahkan 0 atau dengan melakukan operasi matematika. Nomor string juga dapat diubah menjadi integer atau float dengan menambahkan 0 dengan string tersebut. Dalam PHP, melakukan operasi matematika, string diubah menjadi integer atau float secara implisit.
sumber