Saya baru saja menemukan bahwa vim jelas memungkinkan pembagian dengan nol:
:let a=42/0
:echo a
cetakan 2147483647
(yang merupakan nilai a
).
Apakah ini didokumentasikan di suatu tempat dan mengapa vim memungkinkan pembagian dengan nol?
vimscript
arithmetic
René Nyffenegger
sumber
sumber
:echo 42/0.0
lihat hasil lainnya :)Jawaban:
Perilaku ini didokumentasikan dalam bagian eval :
sumber
Inilah alasannya:
Dan bagaimana Vim mewakili jumlah terbesar yang tersedia?
Lihat
:h limits
Selanjutnya,
float2nr
dokumentasi fungsi menyatakan:Jadi, Anda memiliki 2 nomor Anda di sini:
+ 2147483647
dan- 2147483647
.Angka terakhir
-2147483648
digunakan untuk mewakiliNaN
nilai.Ini dikonfirmasi oleh
eval
bagian di atasnya (mea culpa: @cuonglm mempostingnya sebelum saya):Seperti yang dinyatakan oleh @VanLaser, ini hanya berfungsi untuk integer, untuk angka floating point Anda memiliki konsistensi lebih:
sumber
Perilaku ini berguna dalam Kalkulus ketika menggunakan sesuatu yang disebut Batas.
Lim n -> 0 ^ + dari 1 / n = + inf
Ini juga dapat ditulis sebagai: As n -> 0 ^ +, 1 / n -> + inf
Bunyinya seperti itu .. Saat n mendekati nol dari kanan, fungsi 1 / n mendekati tak terhingga positif.
Untuk melihat penjelasan visual dari alasan ini, mampir ke http://www.wolframalpha.com/input/?i=limit+n-%3E0+of+1%2Fn
Adapun Vim-script khusus, AFAIK tidak banyak orang melakukan lebih dari logika dan bilangan bulat aritmatika dengannya. Bisa jadi kasus ini kelihatannya merupakan ide yang bagus pada saat itu, dan hanya merupakan artefak warisan pada saat ini.
sumber