informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Skenario yang saya gunakan adalah menghitung jumlahnya, jadi saya terutama fokus pada jumlahnya. Saya merasa bagian ini agak merepotkan. Saya hanya akan menuliskan beberapa kendala yang saya temui tanpa menunjukkan proses solusinya.
1. Saya pertama kali menulis pengurangan dua angka, tetapi presisi desimal rawan masalah. Misalnya dalam hal ini 1-0.01=0.989999997, tulis saja beberapa angka dengan santai, jangan dianggap serius. Situasi ini ditangani dengan BigDecimal.
2. Masalah keakuratan jumlah yang dihitung telah diselesaikan. Keakuratan jumlah yang saya kirimkan juga harus diproses. Jika tidak, jumlah yang dihitung adalah 1,00 dan jumlah yang saya kirimkan adalah 1. Karena ini adalah perbandingan string, 1. tidak sama dengan 1 selama perbandingan. Dalam kasus 1,00, terjadi kesalahan.
3. Saat jmeter mengembalikan pesan, jika jumlahnya terlalu besar maka akan muncul notasi ilmiah, misalnya jumlah yang dikembalikan adalah 1.23456789013E9. Itu juga perlu diubah ke format digital normal.
Untuk sementara, ketiga kendala tersebut akan dibahas di bawah ini. Skenario: Periksa saldo sebelum pindah rekening, periksa saldo setelah pindah rekening, kurangi kedua saldo, dan verifikasi apakah selisihnya adalah jumlah transaksi saya. Pengecekan saldo harus terhubung ke database. Saya tidak akan menghubungkannya di sini.Klik untuk mempelajari tentang jmeter menghubungkan ke database mysql, saldo sebelum transaksi adalah 1, dan saldo setelah transaksi adalah 0,99
- import java.math.BigDecimal;
- import java.math.RoundingMode;
-
- //动账前余额
- before=vars.get("BAL_1");
- //动账后余额
- after=vars.get("BAL_2");
-
- BigDecimal before=new BigDecimal(before);
- BigDecimal after=new BigDecimal(after);
-
- //两数相减,计算动账前后余额变化
- BigDecimal fee_new= before.subtract(after);
- //保留两位小数
- BigDecimal fee_new=fee_new.setScale(2,RoundingMode.HALF_UP);
- //转化为字符串
- String fee_new1=fee_new.toString();
-
- log.info("动账前后差值:"+fee_new1);
Hitung selisihnya, dapatkan jumlah transaksi, tambahkan pernyataan, dan buat penilaian.
Di atas adalah pengurangan yang dilakukan.Tuliskan penjumlahan, pengurangan, perkalian dan pembagian.
- import java.math.BigDecimal;
-
- BigDecimal a=new BigDecimal("6");
- BigDecimal b=new BigDecimal("2");
- BigDecimal c=a.add(b);
- String c1=c.toString();
- log.info("a+b="+c1);
-
- BigDecimal c=a.subtract(b);
- String c1=c.toString();
- log.info("a-b="+c1);
-
- BigDecimal c=a.multiply(b);
- String c1=c.toString();
- log.info("a*b="+c1);
-
- BigDecimal c=a.divide(b);
- String c1=c.toString();
- log.info("a/b="+c1);
Saya terburu-buru menulisnya dan lupa menambahkan konversi notasi ilmiah. Jika hasil yang dikembalikan dalam notasi ilmiah, biasanya perlu dikonversi.
Langsung gunakan ekspresi reguler untuk mengekstrak bal_ar dan kemudian memprosesnya
- bal_ar=vars.get("bal_ar");
- BigDecimal bal_ar1=new BigDecimal(bal_ar);
- BigDecimal bal_ar1=bal_ar1.setScale(2,RoundingMode.HALF_UP);
- String bal_ar2=bal_ar1.toPlainString();
- log.info("科学计数法转化以后:"+bal_ar2);
String bal_ar2=bal_ar1.toPlainString(); Baris ini mengubah notasi ilmiah menjadi nilai normal