Setelah menghabiskan berjam-jam mencoba mencari kesalahan dalam spreadsheet akuntansi pribadi saya, saya bisa menyematkannya ke satu formula.
Sementara ini menghasilkan Nol
=((0,6-0,3-0,4)+(-0,3+0,8-0,4))
membandingkannya dengan Zero memberi saya salah
=((0,6-0,3-0,4)+(-0,3+0,8-0,4))=0
Apa yang saya lewatkan?
google-sheets
bruno
sumber
sumber
0 != 0
.Jawaban:
Berkat keajaiban aritmatika titik apung ,
mengevaluasi sekitar -5.55e-17 dalam presisi ganda. Ini berlaku dalam JavaScript dan juga di Google Spreadsheets. Tidak masalah apakah perhitungannya adalah sisi klien atau sisi server: yang penting adalah format angka yang digunakan. Tampaknya Google Sheets menggunakan presisi ganda .
Solusinya sama: hindari perbandingan kesetaraan untuk angka floating point. Dalam kasus Anda, mengubah unit dengan mengalikan semuanya dengan 10 akan menghindari masalah.
sumber
=FLOOR(B3+C2, 0.01)
untuk bekerja dengan mata uang