Dari Scratch-Indo-Wiki

bulatkan ()
2.0 Bulatkan ().png
Kategori Operator
Jenis Pelapor

Balok bulatkan () (Bahasa Inggris: round () ) adalah sebuah balok Operator dan juga balok Pelapor. Balok ini membulatkan suatu nilai ke bilangan bulat terdekat lalu melaporkan hasilnya.

Balok ini mengikuti aturan standar pembulatan; desimal yang bernilai .5 atau lebih tinggi dibulatkan ke atas, dan desimal yang bernilai lebih kecil dibandingkan .5 dibulatkan ke bawah.

Contoh Penggunaan

Dalam berbagai karya yang menggunakan angka desimal, angka-angka tersebut harus dibulatkan, dan dapat dilakukan dengan balok ini.

  • Skrip untuk karya berjenis kalkulator yang memperbolehkan pengguna untuk membulatkan angka
artikan kalkulasikan
jika <(operator) = [penjumblahan]>
set [jawaban v] ke ((nilai1) + (nilai2))
end
...
jika <(operator) = [bulatkan]>
set [jawaban v] ke (bulatkan (value))
end

ketika sprite ini diklik //sprite yang berkerja sebagai tombol kalkulator "="
kalkulasikan
  • Membulatkan skor ke angka bulat terdekat dalam karya permainan
    set [skor v] ke (bulatkan(skor))
  • Menghapus nilai desimal dari skor, tanpa membulatkan ke atas
    set [skor v] ke (bulatkan((skor)-(0.5))) // angka apa pun minus 0.5 akan dibulatkan ke bawah
  • Membulatkan nilai yang akan digunakan di balok Ulangi Sebanyak () Kali, karena nilai yang digunakan di balok ini harus bulat
    ulangi sebanyak (bulatkan(4.9891340145)) kali
  • Memosisikan kursor di permainan berbasis tiling seperti Minesweeper
  • Snap to grid
ketika @ diklik
selamanya
pergi ke x: ((bulatkan ((mouse x) / (25))) * (25)) y: ((bulatkan ((mouse y) / (25))) * (25))


Pemecahan Masalah

Operasi "Ceiling" dan "Floor" di Scratch 2.0 dapat digunakan untuk membulatkan suatu angka secara akurat:

([floor v] dari ((angka)-(0.5))

Fungsi matematika "floor" dan "ceiling" juga bisa direplikasikan menggunakan aritmatika modular:

((angka) - ((angka) mod (1))) //membulatkan ke bawah (floor)
((angka) + ((1) - ((angka) mod (1)))) //membulatkan ke atas (ceiling)

atau

jika <(n) > (0)> kemudian
set [terbulatkan v] ke (((n) + (0.5)) - (((n) + (0.5)) mod (1)))
jika tidak
set [terbulatkan v] ke ((((n) - (0.5)) - (((n) - (0.5)) mod (1))) + (1))
end