DecimalFormat Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
DecimalFormat adalah subkelas konkret yang NumberFormat memformat angka desimal.
[Android.Runtime.Register("java/text/DecimalFormat", DoNotGenerateAcw=true)]
public class DecimalFormat : Java.Text.NumberFormat
[<Android.Runtime.Register("java/text/DecimalFormat", DoNotGenerateAcw=true)>]
type DecimalFormat = class
inherit NumberFormat
- Warisan
- Atribut
Keterangan
DecimalFormat adalah subkelas konkret yang NumberFormat memformat angka desimal. Ini memiliki berbagai fitur yang dirancang untuk memungkinkan penguraian dan format angka di lokal mana pun, termasuk dukungan untuk digit Barat, Arab, dan Indik. Ini juga mendukung berbagai jenis angka, termasuk bilangan bulat (123), angka titik tetap (123,4), notasi ilmiah (1,23E4), persentase (12%), dan jumlah mata uang ($ 123). Semua ini dapat dilokalkan.
Untuk mendapatkan NumberFormat untuk lokal tertentu, termasuk lokal default, panggil salah NumberFormatsatu metode pabrik, seperti getInstance(). Secara umum, jangan memanggil DecimalFormat konstruktor secara langsung, karena NumberFormat metode pabrik dapat mengembalikan subkelas selain DecimalFormat. Jika Anda perlu menyesuaikan objek format, lakukan sesuatu seperti ini:
<blockquote>
NumberFormat f = NumberFormat.getInstance(loc);
if (f instanceof DecimalFormat) {
((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true);
}
</blockquote>
DecimalFormat Terdiri dari<> pola</em> dan satu set <simbol>/em< em>. Pola dapat diatur langsung menggunakan applyPattern(), atau secara tidak langsung menggunakan metode API. Simbol disimpan dalam DecimalFormatSymbols objek. Saat menggunakan NumberFormat metode pabrik, pola dan simbol dibaca dari yang dilokalkan ResourceBundle.
<h2>Pola</h2>
DecimalFormat pola memiliki sintaks berikut: <blockquote>
<i>Pattern:</i>
<i>PositivePattern</i>
<i>PositivePattern</i> ; <i>NegativePattern</i>
<i>PositivePattern:</i>
<i>Prefix<sub>opt</sub></i> <i>Number</i> <i>Suffix<sub>opt</sub></i>
<i>NegativePattern:</i>
<i>Prefix<sub>opt</sub></i> <i>Number</i> <i>Suffix<sub>opt</sub></i>
<i>Prefix:</i>
any Unicode characters except \uFFFE, \uFFFF, and special characters
<i>Suffix:</i>
any Unicode characters except \uFFFE, \uFFFF, and special characters
<i>Number:</i>
<i>Integer</i> <i>Exponent<sub>opt</sub></i>
<i>Integer</i> . <i>Fraction</i> <i>Exponent<sub>opt</sub></i>
<i>Integer:</i>
<i>MinimumInteger</i>
#
# <i>Integer</i>
# , <i>Integer</i>
<i>MinimumInteger:</i>
0
0 <i>MinimumInteger</i>
0 , <i>MinimumInteger</i>
<i>Fraction:</i>
<i>MinimumFraction<sub>opt</sub></i> <i>OptionalFraction<sub>opt</sub></i>
<i>MinimumFraction:</i>
0 <i>MinimumFraction<sub>opt</sub></i>
<i>OptionalFraction:</i>
# <i>OptionalFraction<sub>opt</sub></i>
<i>Exponent:</i>
E <i>MinimumExponent</i>
<i>MinimumExponent:</i>
0 <i>MinimumExponent<sub>opt</sub></i>
</blockquote>
Pola DecimalFormat berisi subpattern positif dan negatif, misalnya, "#,##0.00;(#,##0.00)". Setiap subpattern memiliki awalan, bagian numerik, dan akhiran. Subpattern negatif bersifat opsional; jika tidak ada, maka subpattern positif yang diawali dengan tanda minus ('-' U+002D HYPHEN-MINUS) digunakan sebagai subpattern negatif. Artinya, "0.00" saja setara "0.00;-0.00"dengan . Jika ada subpattern negatif eksplisit, subpattern hanya berfungsi untuk menentukan awalan dan akhiran negatif; jumlah digit, digit minimal, dan karakteristik lainnya semuanya sama dengan pola positif. Itu berarti yang "#,##0.0#;(#)" menghasilkan perilaku yang sama persis dengan "#,##0.0#;(#,##0.0#)".
Awalan, akhiran, dan berbagai simbol yang digunakan untuk tak terbatas, digit, pemisah pengelompokan, pemisah desimal, dll. dapat diatur ke nilai arbitrer, dan mereka akan muncul dengan benar selama pemformatan. Namun, perhatian harus diambil bahwa simbol dan string tidak bertentangan, atau penguraian tidak akan dapat diandalkan. Misalnya, prefiks positif dan negatif atau akhiran harus berbeda untuk DecimalFormat.parse() dapat membedakan positif dari nilai negatif. (Jika identik, maka DecimalFormat akan berulah seolah-olah tidak ada subpattern negatif yang ditentukan.) Contoh lain adalah bahwa pemisah desimal dan pemisah pengelompokan harus karakter yang berbeda, atau penguraian tidak akan mungkin terjadi.
Pemisah pengelompokan umumnya digunakan untuk ribuan, tetapi di beberapa negara memisahkan sepuluh ribu. Ukuran pengelompokan adalah jumlah digit konstanta antara karakter pengelompokan, seperti 3 untuk 100.000.000 atau 4 untuk 1.0000.0000. Jika Anda menyediakan pola dengan beberapa karakter pengelompokan, interval antara yang terakhir dan akhir bilangan bulat adalah yang digunakan. Jadi "#,##,###,####" == "######,####" == "##,####,####".
<h3>"special_pattern_character">Karakter< Pola Khusus/h3>
Banyak karakter dalam pola diambil secara harfiah; mereka dicocokkan selama penguraian dan output tidak berubah selama pemformatan. Karakter khusus, di sisi lain, berdiri untuk karakter, string, atau kelas karakter lainnya. Mereka harus dikutip, kecuali disebutkan sebaliknya, jika mereka muncul dalam awalan atau akhiran sebagai literal.
Karakter yang tercantum di sini digunakan dalam pola yang tidak dilokalkan. Pola yang dilokalkan menggunakan karakter terkait yang diambil dari objek pemformat DecimalFormatSymbols ini sebagai gantinya, dan karakter ini kehilangan status khususnya. Dua pengecualian adalah tanda mata uang dan kuotasi, yang tidak dilokalkan.
<blockquote><table class="striped"><caption style="display:none">Chart memperlihatkan simbol, lokasi, lokal, dan makna.</caption><thead><tr><th scope="col" style="text-align:left">Symbol <th scope="col" style="text-align:left">Location <th scope="col" style="text-align:left">Localized?
<th scope="col" style="text-align:left"Meaning /thead><tbody><tr style="vertical-align:top"><th scope="row"><>td Number 0td<Yes >td<>Digit <tr style="vertical-align: top"><th scope="row"><>td Number #td<>Yes <td>Digit, nol menunjukkan sebagai tr style=<"vertical-align:top"><th scope="row"><>td Number .td<><>Ya <td>Pemisah desimal atau pemisah <desimal moneter tr style="vertical-align: top"><th scope="row">-<td Number >td<>Yes <td>Minus sign <tr style="vertical-align:top"><th scope="row">,<td Number >td<>Ya <td>Pemisah pengelompokan atau moneter grouping separator <tr style="vertical-align: top"><th scope="row">E<td>Angka <td>Ya <td>Memisahkan mantissa dan eksponen dalam notasi ilmiah.
<em>Tidak perlu dikutip dalam awalan atau akhiran.</em>tr style="vertical-align:top"<>th scope="row"<>;td<Subpattern boundary >td<Ya >td<Memisahkan subpattern >positif dan negatif tr style="vertical-align: top"<>th scope="row"<>%td<Awalan atau akhiran >td Ya <td><Kalikan dengan 100 dan tampilkan sebagai persentase >tr style="vertical-align:top"<>th scope="row"<>\u2030td<Prefix or akhiran >td<>Ya <td>Kalikan dengan 1000 dan tampilkan sesuai nilai <mile tr style="vertical-align: top"><th scope="row">¤ (\u00A4) <td>Awalan atau akhiran <td Tidak ada >tanda mata uang td<>, digantikan oleh simbol mata uang. Jika digandakan, digantikan oleh simbol mata uang internasional. Jika ada dalam pola, pemisah desimal/pengelompokan moneter digunakan alih-alih pemisah desimal/pengelompokan.
<tr style="vertical-align:top">th scope="row"<>'td<Prefix or suffix >td<No >td<Digunakan untuk mengutip karakter khusus dalam awalan atau akhiran, misalnya, > format 123 ke "'#'#"."#123" Untuk membuat tanda kutip tunggal itu sendiri, gunakan dua berturut-turut: "# o''clock".
</tbody></table></blockquote>
<h3>Notasi< Ilmiah/h3>
Angka dalam notasi ilmiah dinyatakan sebagai produk mantissa dan kekuatan sepuluh, misalnya, 1234 dapat dinyatakan sebagai 1,234 x 10^3. Mantissa sering berada di kisaran 1.0 ≤ x < 10.0, tetapi tidak perlu.
DecimalFormat dapat diinstruksikan untuk memformat dan mengurai notasi <ilmiah em>hanya melalui pola< /em>; saat ini tidak ada metode pabrik yang membuat format notasi ilmiah. Dalam pola, karakter eksponen segera diikuti oleh satu atau beberapa karakter digit menunjukkan notasi ilmiah. Contoh: "0.###E0" memformat angka 1234 sebagai "1.234E3".
<ul><li>Jumlah karakter digit setelah karakter eksponen memberikan jumlah digit eksponen minimum. Tidak ada maksimum. Eksponen negatif diformat menggunakan tanda minus yang dilokalkan, <mereka>tidak</em> awalan dan akhiran dari pola. Ini memungkinkan pola seperti "0.###E0 m/s".
<li>Jumlah minimum dan maksimum digit bilangan bulat ditafsirkan bersama-sama:
<ul><li Jika jumlah maksimum digit bilangan bulat>lebih besar dari jumlah minimumnya dan lebih besar dari 1, itu memaksa eksponen menjadi kelipatan dari jumlah maksimum digit bilangan bulat, dan jumlah minimum digit bilangan bulat yang akan ditafsirkan sebagai 1. Penggunaan yang paling umum dari ini adalah untuk menghasilkan <notasi> rekayasa em</ em>, di mana eksponen adalah kelipatan dari tiga, misalnya, "##0.#####E0". Dengan menggunakan pola ini, angka 12345 memformat ke "12.345E3", dan 123456 format ke "123.456E3".
<li>Jika tidak, jumlah minimum digit bilangan bulat dicapai dengan menyesuaikan eksponen. Contoh: 0,00123 diformat dengan "00.###E0" hasil "12.3E-4".
</ul>
<li>Jumlah digit signifikan dalam mantissa adalah jumlah bilangan <bulat> minimum/<em> dan <em>pecahan< maksimum/digit em>, dan tidak terpengaruh oleh digit bilangan bulat maksimum. Misalnya, 12345 diformat dengan "##0.##E0" adalah "12.3E3". Untuk memperlihatkan semua digit, atur jumlah digit signifikan ke nol. Jumlah digit signifikan tidak memengaruhi penguraian.
<li>Pola eksponensial mungkin tidak berisi pemisah pengelompokan. </ul>
<h3>Rounding</h3>
DecimalFormat menyediakan mode pembulatan yang ditentukan untuk java.math.RoundingMode pemformatan. Secara default, ia menggunakan java.math.RoundingMode#HALF_EVEN RoundingMode.HALF_EVEN.
<h3>Digit/<h3>
Untuk pemformatan, DecimalFormat menggunakan sepuluh karakter berturut-turut yang dimulai dengan digit nol yang dilokalkan yang ditentukan dalam DecimalFormatSymbols objek sebagai digit. Untuk penguraian, digit ini serta semua digit desimal Unicode, seperti yang didefinisikan oleh Character#digit Character.digit, dikenali.
<h4>Nilai< Khusus/h4>
NaN diformat sebagai string, yang biasanya memiliki satu karakter \uFFFD. String ini ditentukan oleh DecimalFormatSymbols objek. Ini adalah satu-satunya nilai yang awalan dan akhirannya tidak digunakan.
Infinity diformat sebagai string, yang biasanya memiliki satu karakter \u221E, dengan awalan positif atau negatif dan akhiran diterapkan. String tak terbatas ditentukan oleh DecimalFormatSymbols objek .
Nol negatif ("-0") menguraikan ke <ul><li>BigDecimal(0) jika isParseBigDecimal() benar, <li>Long(0) jika isParseBigDecimal() false dan isParseIntegerOnly() true, <li>Double(-0.0) jika keduanya isParseBigDecimal() dan isParseIntegerOnly() false.
</ul>
<h3>"synchronization">Synchronization</h3>
Format desimal umumnya tidak disinkronkan. Disarankan untuk membuat instans format terpisah untuk setiap utas. Jika beberapa utas mengakses format secara bersamaan, utas tersebut harus disinkronkan secara eksternal.
<Contoh> h3</h3>
<blockquote>
<strong>{@code
// Print out a number using the localized number, integer, currency,
// and percent format for each locale}</strong>{@code
Locale[] locales = NumberFormat.getAvailableLocales();
double myNumber = -1234.56;
NumberFormat form;
for (int j = 0; j < 4; ++j) {
System.out.println("FORMAT");
for (int i = 0; i < locales.length; ++i) {
if (locales[i].getCountry().length() == 0) {
continue; // Skip language-only locales
}
System.out.print(locales[i].getDisplayName());
switch (j) {
case 0:
form = NumberFormat.getInstance(locales[i]); break;
case 1:
form = NumberFormat.getIntegerInstance(locales[i]); break;
case 2:
form = NumberFormat.getCurrencyInstance(locales[i]); break;
default:
form = NumberFormat.getPercentInstance(locales[i]); break;
}
if (form instanceof DecimalFormat) {
System.out.print(": " + ((DecimalFormat) form).toPattern());
}
System.out.print(" -> " + form.format(myNumber));
try {
System.out.println(" -> " + form.parse(form.format(myNumber)));
} catch (ParseException e) {}
}
}
}
</blockquote>
Ditambahkan dalam 1.1.
Java dokumentasi untuk java.text.DecimalFormat.
Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.
Konstruktor
| Nama | Deskripsi |
|---|---|
| DecimalFormat() |
Membuat DecimalFormat menggunakan pola dan simbol default untuk lokal default |
| DecimalFormat(IntPtr, JniHandleOwnership) |
Konstruktor yang digunakan saat membuat representasi terkelola objek JNI; dipanggil oleh runtime. |
| DecimalFormat(String, DecimalFormatSymbols) |
Membuat DecimalFormat menggunakan pola dan simbol yang diberikan. |
| DecimalFormat(String) |
Membuat DecimalFormat menggunakan pola yang diberikan dan simbol untuk lokal default |
Bidang
| Nama | Deskripsi |
|---|---|
| FractionField |
Konstanta bidang yang digunakan untuk membuat objek FieldPosition. (Diperoleh dari NumberFormat) |
| IntegerField |
Konstanta bidang yang digunakan untuk membuat objek FieldPosition. (Diperoleh dari NumberFormat) |
Properti
| Nama | Deskripsi |
|---|---|
| Class |
Mengembalikan kelas runtime dari . |
| Currency |
Mendapatkan mata uang yang digunakan oleh format angka ini saat memformat nilai mata uang. -or- Mengatur mata uang yang digunakan oleh format angka ini saat memformat nilai mata uang. (Diperoleh dari NumberFormat) |
| DecimalFormatSymbols |
Mengembalikan salinan simbol format desimal, yang umumnya tidak diubah oleh programmer atau pengguna. -or- Mengatur simbol format desimal, yang umumnya tidak diubah oleh programmer atau pengguna. |
| DecimalSeparatorAlwaysShown |
Memungkinkan Anda untuk mendapatkan perilaku pemisah desimal dengan bilangan bulat. -or- Memungkinkan Anda mengatur perilaku pemisah desimal dengan bilangan bulat. |
| GroupingSize |
Mengembalikan ukuran pengelompokan. -or- Atur ukuran pengelompokan. |
| GroupingUsed |
Mengembalikan true jika pengelompokan digunakan dalam format ini. -atau- Atur apakah pengelompokan akan digunakan dalam format ini atau tidak. (Diperoleh dari NumberFormat) |
| Handle |
Handel ke instans Android yang mendasar. (Diperoleh dari Object) |
| JniIdentityHashCode |
Mendapatkan kode hash identitas yang ditetapkan ke Java peer ini oleh runtime interop. (Diperoleh dari Object) |
| JniManagedPeerState |
|
| JniPeerMembers |
|
| MaximumFractionDigits |
Mengembalikan jumlah maksimum digit yang diizinkan dalam bagian pecahan angka. -or- Mengatur jumlah maksimum digit yang diizinkan dalam bagian pecahan angka. (Diperoleh dari NumberFormat) |
| MaximumIntegerDigits |
Mengembalikan jumlah maksimum digit yang diizinkan dalam bagian bilangan bulat dari angka. -or- Mengatur jumlah maksimum digit yang diizinkan dalam bagian bilangan bulat angka. (Diperoleh dari NumberFormat) |
| MinimumFractionDigits |
Mengembalikan jumlah minimum digit yang diizinkan dalam bagian pecahan angka. -or- Mengatur jumlah minimum digit yang diizinkan dalam bagian pecahan angka. (Diperoleh dari NumberFormat) |
| MinimumIntegerDigits |
Mengembalikan jumlah minimum digit yang diizinkan dalam bagian bilangan bulat dari angka. -or- Mengatur jumlah minimum digit yang diizinkan dalam bagian bilangan bulat dari angka. (Diperoleh dari NumberFormat) |
| Multiplier |
Mendapatkan pengali untuk digunakan dalam persen, per mil, dan format serupa. -or- Mengatur pengali untuk digunakan dalam persen, per mil, dan format serupa. |
| NegativePrefix |
Dapatkan awalan negatif. -atau- Atur awalan negatif. |
| NegativeSuffix |
Dapatkan akhiran negatif. -atau- Atur akhiran negatif. |
| ParseBigDecimal |
Mengembalikan apakah |
| ParseIntegerOnly |
Mengembalikan true jika format ini hanya akan mengurai angka sebagai bilangan bulat. -atau- Mengatur apakah angka harus diuraikan sebagai bilangan bulat saja atau tidak. (Diperoleh dari NumberFormat) |
| PeerReference |
Mendapatkan referensi objek JNI untuk peer Java ini. (Diperoleh dari Object) |
| PositivePrefix |
Dapatkan awalan positif. -atau- Atur awalan positif. |
| PositiveSuffix |
Dapatkan akhiran positif. -atau- Atur akhiran positif. |
| RoundingMode |
Mendapatkan yang |
| ThresholdClass |
API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda. |
| ThresholdType |
API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda. |
Metode
| Nama | Deskripsi |
|---|---|
| ApplyLocalizedPattern(String) |
Terapkan pola yang diberikan ke objek Format ini. |
| ApplyPattern(String) |
Terapkan pola yang diberikan ke objek Format ini. |
| Clone() |
Membuat dan mengembalikan salinan objek ini. (Diperoleh dari _Format) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
|
| Dispose() |
Merilis sumber daya yang dipegang oleh rekan Java ini. (Diperoleh dari Object) |
| Dispose(Boolean) |
Merilis sumber daya yang dipegang oleh rekan Java ini. (Diperoleh dari Object) |
| DisposeUnlessReferenced() |
|
| Equals(Object) |
|
| Equals(Object) |
Menunjukkan apakah beberapa objek lain "sama dengan" yang satu ini. (Diperoleh dari Object) |
| Format(Double, StringBuffer, FieldPosition) |
Memformat ganda untuk menghasilkan string. |
| Format(Double) |
Spesialisasi format. (Diperoleh dari NumberFormat) |
| Format(Int64, StringBuffer, FieldPosition) |
Format panjang untuk menghasilkan string. |
| Format(Int64) |
Spesialisasi format. (Diperoleh dari NumberFormat) |
| Format(Object, StringBuffer, FieldPosition) |
Memformat angka dan menambahkan teks yang dihasilkan ke buffer string yang diberikan. |
| Format(Object) |
Memformat objek untuk menghasilkan string. (Diperoleh dari _Format) |
| FormatToCharacterIterator(Object) |
Memformat Objek yang |
| GetHashCode() |
Mengembalikan nilai kode hash untuk objek . (Diperoleh dari Object) |
| JavaFinalize() |
Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek. (Diperoleh dari Object) |
| Notify() |
Membangunkan satu utas yang menunggu monitor objek ini. (Diperoleh dari Object) |
| NotifyAll() |
Membangunkan semua utas yang menunggu monitor objek ini. (Diperoleh dari Object) |
| Parse(String, ParsePosition) |
Mengurai teks dari string untuk menghasilkan |
| Parse(String) |
Mengurai teks dari awal string yang diberikan untuk menghasilkan angka. (Diperoleh dari NumberFormat) |
| ParseObject(String, ParsePosition) |
Mengurai teks dari string untuk menghasilkan |
| ParseObject(String) |
Mengurai teks dari awal string yang diberikan untuk menghasilkan objek. (Diperoleh dari _Format) |
| SetHandle(IntPtr, JniHandleOwnership) |
Mengatur properti Handle. (Diperoleh dari Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
|
| ToArray<T>() |
Membuat array terkelola dari pembungkus array Java ini. (Diperoleh dari Object) |
| ToLocalizedPattern() |
Mensintesis string pola yang dilokalkan yang mewakili status objek Format saat ini. |
| ToPattern() |
Mensintesis string pola yang mewakili status objek Format saat ini. |
| ToString() |
Mengembalikan representasi string objek. (Diperoleh dari Object) |
| UnregisterFromRuntime() |
Membatalkan pendaftaran peer Java ini dari runtime interop. (Diperoleh dari Object) |
| Wait() |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <diberitahu></em> atau <em>terganggu</em>. (Diperoleh dari Object) |
| Wait(Int64, Int32) |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah waktu nyata berlalu. (Diperoleh dari Object) |
| Wait(Int64) |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah waktu nyata berlalu. (Diperoleh dari Object) |
Implementasi Antarmuka Eksplisit
| Nama | Deskripsi |
|---|---|
| IJavaPeerable.Disposed() |
|
| IJavaPeerable.Finalized() |
|
| IJavaPeerable.JniObjectReferenceControlBlock |
|
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
| IJavaPeerable.SetPeerReference(JniObjectReference) |
|
| IJavaPeerable.UnregisterFromRuntime() |
|
Metode Ekstensi
| Nama | Deskripsi |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Mendapatkan nama JNI dari jenis instans |
| JavaAs<TResult>(IJavaPeerable) |
Cobalah untuk memaksa |
| JavaCast<TResult>(IJavaObject) |
Melakukan konversi jenis yang diperiksa runtime Android. |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Cobalah untuk memaksa |