Rust: Perilaku pembulatan pembagian/sisa bilangan bulat harus didokumentasikan

Dibuat pada 7 Jul 2015  ·  3Komentar  ·  Sumber: rust-lang/rust

Menggunakan Google, saya dapat menemukan banyak argumen lama tentang bagaimana pembagian bilangan bulat harus bekerja di Rust, tetapi saya tidak dapat menemukan apa pun dalam referensi, dokumen API untuk tipe integer, atau dokumen API untuk sifat Div yang mengatakan apa yang sebenarnya diputuskan. (Dan dokumentasi tampaknya menyiratkan bahwa / , checked_div , dan wrapping_div mungkin tidak semuanya melakukan hal yang sama.) Ini semakin dibingungkan oleh dokumentasi tipe integer yang tampaknya kadang-kadang menggunakan / untuk merujuk ke pembagian bilangan bulat dan terkadang ke pembagian matematika. (Saya tidak dapat menemukan interpretasi wajar lainnya dari floor(self / other) dalam dokumentasi wrapping_div .) Akan lebih baik jika ini didokumentasikan dengan jelas di suatu tempat, karena ini bervariasi antara bahasa dan satu dari kebingungan utama dengan aritmatika bilangan bulat.

Semua 3 komentar

http://doc.rust-lang.org/reference.html#behavior -not-considered-unsafe berbicara tentang 'overflow' dan menyebutkan pembungkus, tetapi Anda benar bahwa kami dapat memunculkan ini dengan lebih baik.

@steveklabnik

Ini tentang pembulatan, bukan pembungkus. Kami menggunakan LLVM sdiv , yang dibulatkan menuju nol (dan srem memiliki tanda yang sama dengan dividen). Kita harus mendokumentasikan ini (dokumentasi untuk wrapping_div saat ini _lies_, mengklaim bahwa pembulatan ke arah negatif tak terbatas).

Ini juga harus meninggalkan peringatan, karena integer / integer tidak selalu diinginkan dan terjadi secara tidak sengaja. Hanya sebuah pemikiran jika ada yang membaca ini.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat