الفرق بين المراجعتين لصفحة: «Kotlin/kotlin.text/toBigDecimal»

من موسوعة حسوب
لا ملخص تعديل
مراجعة وتدقيق.
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع text.toBigDecimal()‎ في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE:الدالة <code>toBigDecimal()‎</code> في Kotlin}}</noinclude>
تحلّل الدالة <code>toBigDecimal()</code>‎ [[Kotlin/String|السلسلة النصية]] التي استٌدعيت عبرها وتحوّلها إلى عدد من النوع <code>BigDecimal</code>.
تحلّل الدالة <code>toBigDecimal()</code>‎ [[Kotlin/String|السلسلة النصية]] التي استٌدعيت معها وتحوّلها إلى عدد من النوع <code>BigDecimal</code>.
 
==البنية العامة==
== البنية العامة ==
<syntaxhighlight lang="kotlin">
<syntaxhighlight lang="kotlin">
inline fun String.toBigDecimal(): BigDecimal
inline fun String.toBigDecimal(): BigDecimal


</syntaxhighlight>'''بيئة التشغيل المطلوبة: Kotlin 1.2, JVM'''
</syntaxhighlight>'''منصة التشغيل والإصدار المطلوبان:''' Kotlin 1.2 ، JVM.


تحلّل الدالة <code>toBigDecimal()</code>‎ [[Kotlin/String|السلسلة النصية]] التي استٌدعيت عبرها وتحوّلها إلى عدد من النوع <code>java.math.BigDecimal</code> وتعيد الناتج.
تحلّل الدالة <code>toBigDecimal()</code>‎ [[Kotlin/String|السلسلة النصية]] التي استٌدعيت معها وتحوّلها إلى عدد من النوع <code>java.math.BigDecimal</code> ثم تعيد الناتج.


في حال لم تكن [[Kotlin/String|السلسلة النصية]] تمثل عددًا فستطلق الدالةُ استثناءً <code>NumberFormatException</code>.<syntaxhighlight lang="kotlin">
إن لم تكن [[Kotlin/String|السلسلة النصية]] تمثل عددًا، فسيُطلَق الاستثناء <code>NumberFormatException</code>.<syntaxhighlight lang="kotlin">
inline fun String.toBigDecimal(
inline fun String.toBigDecimal(
     mathContext: MathContext
     mathContext: MathContext
): BigDecimal
): BigDecimal
</syntaxhighlight>'''بيئة التشغيل المطلوبة: Kotlin 1.2, JVM'''
</syntaxhighlight>'''منصة التشغيل والإصدار المطلوبان:''' Kotlin 1.2 ، JVM.
 
تحلّل الدالة <code>toBigDecimal()</code>‎ [[Kotlin/String|السلسلة النصية]] التي استٌدعيت عبرها وتحوّلها إلى عدد من النوع <code>java.math.BigDecimal</code> وتعيد الناتج.


في حال لم تكن  [[Kotlin/String|السلسلة النصية]] تمثل عددًا فستطلق الدالةُ استثناءً <code>NumberFormatException</code>. أما في حال كانت هناك ضرورة للقيام بالتقريب (rounding) لكنّ وضع التقريب مُعد على الوضع <code>java.math.RoundingMode.UNNECESSARY</code>،  فستطلق استثناءً <code>ArithmeticException</code>.
تحلّل الدالة <code>toBigDecimal()</code>‎ [[Kotlin/String|السلسلة النصية]] التي استٌدعيت معها وتحوّلها إلى عدد من النوع <code>java.math.BigDecimal</code> ثم تعيد الناتج.


الوسيط <code>mathContext</code> يحدد دقة وضع التقريب (rounding mode).
إن لم تكن [[Kotlin/String|السلسلة النصية]] تمثل عددًا، فسيُطلَق الاستثناء <code>NumberFormatException</code>. أما إن كانت هناك ضرورة للقيام بالتقريب (rounding) لكنّ وضع التقريب (rounding mode) مضبوط إلى القيمة <code>java.math.RoundingMode.UNNECESSARY</code>، فسيُطلَق الاستثناء <code>ArithmeticException</code>.


يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة [[Kotlin/inline functions|الدوال المباشرة (inline functions)]]).


== القيم المعادة ==
== المعاملات ==
عدد من النوع <code>BigDecimal</code>.


== أمثلة ==
=== <code>mathContext</code> ===
كائن من النوع <code>MathContext</code> يحدد الدقة ويضبط وضع التقريب (rounding mode).


=== استخدام الدالة <code>toBigDecimal()‎</code> مع سلسلة نصية ===
==القيم المعادة==
تُعرّف الشيفرة الآتية <nowiki/>[[Kotlin/String|سلسلة نصية]] باسم <code>str</code> ثم تستدعي الدالة <code>toBigDecimal()‎</code> عبرها مع تمرير  [[Kotlin/String|سلسلة نصية]] كوسيط، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
عدد من النوع <code>BigDecimal</code> يمثل ناتج تحويل [[Kotlin/String|السلسلة النصية]] المعطاة.
==أمثلة==
مثالٌ على استعمال الدالة <code>toBigDecimal()‎</code>:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
     val str = "123.454"
     val str = "123.454"
   
 
     println(str.toBigDecimal()) // 123.454
     println(str.toBigDecimal()) // 123.454
    println(str.toBigDecimal().javaClass.kotlin.qualifiedName) // java.math.BigDecimal
}
}
</syntaxhighlight>
</syntaxhighlight>مثالٌ آخر على استعمال الدالة <code>toBigDecimal()‎</code>:<syntaxhighlight lang="kotlin">
=== استخدام الدالة <code>toBigDecimal()‎</code> مع سلسلة نصية: الحالة الثانية ===
تُعرّف الشيفرة الآتية [[Kotlin/String|سلسلة نصية]] باسم <code>str</code> ثم تستدعي الدالة <code>toBigDecimal()‎</code> عبرها مع تمرير  [[Kotlin/String|سلسلة نصية]] كوسيط، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
     val str = "aa12344565656"
     val str = "aa12344565656"
سطر 44: سطر 42:
     println(str.toBigDecimal()) // الدالة ستطلق استثناء
     println(str.toBigDecimal()) // الدالة ستطلق استثناء
}
}
</syntaxhighlight>
</syntaxhighlight>سيعطي هذا المثال عند تنفيذه الناتج التالي:<syntaxhighlight lang="text">
المُخرجات:<syntaxhighlight lang="kotlin">
Exception in thread "main" java.lang.NumberFormatException
Exception in thread "main" java.lang.NumberFormatException
     at java.math.BigDecimal.&amp;lt;init&amp;gt;(BigDecimal.java:494)
     at java.math.BigDecimal.&amp;lt;init&amp;gt;(BigDecimal.java:494)
     at java.math.BigDecimal.&amp;lt;init&amp;gt;(BigDecimal.java:383)
     at java.math.BigDecimal.&amp;lt;init&amp;gt;(BigDecimal.java:383)
     at java.math.BigDecimal.&amp;lt;init&amp;gt;(BigDecimal.java:806)
     at java.math.BigDecimal.&amp;lt;init&amp;gt;(BigDecimal.java:806)
     at Simplest_versionKt.main(Simplest version.kt:4)
     at Simplest_versionKt.main(Simplest version.kt:4)  
</syntaxhighlight>
</syntaxhighlight>
== انظر أيضًا ==
==انظر أيضًا==
* <code>[[Kotlin/text/toUpperCase|toUpperCase()]]</code>‎ : تحوّل الدالة <code>toUpperCase()</code>‎ الحرف أو السلسلة النصية التي استٌدعيت عبرها إلى حالة الأحرف الكبيرة (uppercase).
*الدالة <code>[[Kotlin/kotlin.text/toBigDecimalOrNull|toBigDecimalOrNull()]]‎</code>: تحلّل الدالة <code>toBigDecimalOrNull()</code>‎ [[Kotlin/String|السلسلة النصية]] التي استٌدعيت معها وتحوّلها إلى عدد من النوع <code>BigDecimal</code>.
 
*الدالة [[Kotlin/kotlin.text/toBigInteger|<code>toBigInteger()</code>‎]]: تحلّل [[Kotlin/String|السلسلة النصية]] التي استٌدعيت معها وتحوّلها إلى عدد من النوع <code>BigDecimal</code>.
*<code>[[Kotlin/text/isDefined|toBigDecimalOrNull()]]</code>: تحلّل الدالة <code>toBigDecimalOrNull()</code>‎ [[Kotlin/String|السلسلة النصية]] التي استٌدعيت عبرها وتحوّلها إلى عدد من النوع <code>BigDecimal</code>.
*الدالة [[Kotlin/kotlin.text/toBigIntegerOrNull|<code>toBigIntegerOrNull()</code>‎]]: تحلّل [[Kotlin/String|السلسلة النصية]] التي استٌدعيت معها وتحوّلها إلى عدد من النوع <code>BigInteger</code>.
*الدالة [[Kotlin/kotlin.text/toBoolean|<code>toBoolean()</code>‎]]: تعيد القيمة <code>true</code> إن كانت [[Kotlin/String|السلسلة النصية]] التي استٌدعيت معها تساوي <code>"true"</code> مع تجاهل حالة الأحرف، أو تعيد القيمة <code>false</code>.
*الدالة [[Kotlin/kotlin.text/toByte|<code>toByte()</code>‎]]: تحلّل [[Kotlin/String|السلسلة النصية]] التي استٌدعيت معها وتحوّلها إلى عدد من النوع <code>[[Kotlin/Byte|Byte]]</code>.
*الدالة [[Kotlin/kotlin.text/toByteArray|<code>toByteArray()</code>‎]]: ترمز جميع محارف [[Kotlin/String|السلسلة النصية]] التي استٌدعيت معها وفقًا لترميز محدد ثم تضع الناتج في مصفوفة من النوع <code>[[Kotlin/ByteArray|ByteArray]]</code>.
*الدالة <code>[[Kotlin/text/toUpperCase|toUpperCase()]]</code>‎ : تحوّل المحرف أو جميع محارف السلسلة النصية التي استٌدعيت معها إلى محارف كبيرة (uppercase).
*الدالة [[Kotlin/kotlin.text/toCharArray|<code>toCharArray()</code>‎]]: تضع جميع محارف [[Kotlin/String|السلسلة النصية]] التي استٌدعيت معها في مصفوفة من النوع <code>[[Kotlin/CharArray|CharArray]]</code>، إذ يوضع كل محرف في عنصر.
*الدالة <nowiki/>[[Kotlin/kotlin.text/toCollection|<code>toCollection()</code>‎]]: تضيف كل محارف <nowiki/>[[Kotlin/CharSequence|السلسلة]] التي استٌدعيت معها إلى المجموعة المتغيرة المُمرّرة إليها.
*الدالة <nowiki/>[[Kotlin/kotlin.text/toDouble|<code>toDouble()</code>‎]]: تحلّل السلسلة النصية التي استٌدعيت معها وتحوّلها إلى <nowiki/>[[Kotlin/Double|عدد عشري مضاعف]].
*الدالة <nowiki/>[[Kotlin/kotlin.text/toDoubleOrNull|<code>toDoubleOrNull()</code>‎]]: تحلّل السلسلة النصية التي استٌدعيت عبرها وتحوّلها إلى <nowiki/>[[Kotlin/Double|عدد عشري مضاعف]].


* <code>[[Kotlin/text/isDefined|isDefined()]]‎</code>: تعيد القيمة <code>true</code> في حال كان الحرف (Unicode code point) الذي استٌدعيت عبره مُعرّفًا في اليونيكود (Unicode).
* الدالة <nowiki/>[[Kotlin/kotlin.text/toFloat|<code>toFloat()</code>‎]]: تحلّل السلسلة النصية التي استٌدعيت عبرها وتحوّلها إلى <nowiki/>[[Kotlin/Float|عدد عشري]].
* الدالة <nowiki/>[[Kotlin/kotlin.text/toFloatOrNull|<code>toFloatOrNull()</code>‎]]: تحلّل السلسلة النصية التي استٌدعيت عبرها وتحوّلها إلى <nowiki/>[[Kotlin/Float|عدد عشري]].
* الدالة <nowiki/>[[Kotlin/kotlin.text/toHashSet|<code>toHashSet()</code>]]: تحلّل كائنًا من النوع <code>HashSet</code> يحوي كل محارف <nowiki/>[[Kotlin/CharSequence/index|السلسلة]] التي استٌدعيت معها.
* الدالة <nowiki/>[[Kotlin/kotlin.text/toInt|<code>toInt()</code>‎]]: تحلّل السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد صحيح.
* الدالة <nowiki/>[[Kotlin/kotlin.text/toIntOrNull|<code>toIntOrNull()</code>‎]]: تحلّل السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد صحيح.
* الدالة [[Kotlin/kotlin.text/toList|<code>toList()</code>‎]]: تضيف كل محارف [[Kotlin/CharSequence|سلسلة المحارف]] التي استٌدعيت معها إلى [[Kotlin/collections/List|قائمة]]، إذ يوضع كل محرف في عنصر.
* الدالة <code>[[Kotlin/kotlin.text/toLong|toLong()]]</code>‎: تحلّل [[Kotlin/String|السلسلة النصية]] التي استٌدعيت معها وتحوّلها إلى [[Kotlin/Long|عدد طويل]].
* الدالة [[Kotlin/kotlin.text/toLongOrNull|<code>toLongOrNull()</code>‎]]: تحلّل [[Kotlin/String|السلسلة النصية]] التي استٌدعيت عبرها وتحوّلها إلى [[Kotlin/Long|عدد طويل]].
* الدالة [[Kotlin/text/toLowerCase|<code>toLowerCase()</code>‎]]: تحول [[Kotlin/Char|المحرف]] أو جميع محارف [[Kotlin/String|السلسلة النصية]] التي استٌدعيت معها إلى محارف صغيرة (lowercase).
* الدالة [[Kotlin/kotlin.text/toMutableList|<code>toMutableList()</code>‎]]: تضيف كل محارف [[Kotlin/CharSequence|سلسلة المحارف]] التي استٌدعيت معها إلى [[Kotlin/collections/List|قائمة متغيرة]]، إذ يوضع كل محرف في عنصر.
* الدالة [[Kotlin/kotlin.text/toPattern|<code>toPattern()</code>‎]]: تحول [[Kotlin/String|السلسلة النصية]] التي استٌدعيت معها إلى نمط.
* الدالة [[Kotlin/kotlin.text/toRegex|<code>toRegex()</code>‎]]: تحول [[Kotlin/String|السلسلة النصية]] التي استٌدعيت معها إلى [[Kotlin/kotlin.text/Regex/index|تعبير نمطي]] (regular expression). 
* الدالة [[Kotlin/kotlin.text/toSet|<code>toSet()</code>‎]]: تضيف كل محارف [[Kotlin/CharSequence/index|سلسلة الحروف]]  التي استٌدعيت معها إلى مجموعة من النوع <code>[[Kotlin/Set|Set]]</code>، إذ يوضع كل محرف في عنصر.
* الدالة [[Kotlin/kotlin.text/toShort|<code>toShort()</code>‎]]: تحلّل [[Kotlin/String|السلسلة النصية]] التي استٌدعيت معها وتحوّلها إلى [[Kotlin/Short|عدد قصير.]]
* الدالة [[Kotlin/kotlin.text/toShortOrNull|<code>toShortOrNull()</code>‎]]: تحلّل [[Kotlin/String|السلسلة النصية]] التي استٌدعيت معها وتحوّلها إلى [[Kotlin/Short|عدد قصير]].
* الدالة [[Kotlin/kotlin.text/toSortedSet|<code>toSortedSet()</code>‎]]: تضيف كل محارف [[Kotlin/CharSequence|السلسلة]]  التي استٌدعيت معها إلى مجموعة من النوع <code>[[Kotlin/collections/SortedSet|SortedSet]]</code>، إذ يوضع كل محرف في عنصر.
* الدالة [[Kotlin/kotlin.text/toString|<code>toString()</code>‎]] : تحول العدد الذي استٌدعي معها وفقًا لأساس مُحدّد إلى [[Kotlin/String|سلسلة نصية]].
* الدالة [[Kotlin/text/toTitleCase|<code>toTitleCase()</code>‎]]: تحول [[Kotlin/Char|المحرف]] الذي استٌدعي معها إلى محرف عنواني (titlecase). تتكون المحارف العنوانية عادةً من محرفين ملتصقين، مثل <code>'Dž'</code> أو <code>'Nj'</code>، إذ يعاملان وكأنَّهما محرفٌ واحدٌ فقط.
* الدالة [[Kotlin/text/toUpperCase|<code>toUpperCase()</code>‎]]: تحول [[Kotlin/Char|المحرف]] أو جميع محارف [[Kotlin/String|السلسلة النصية]] التي استٌدعيت معها إلى محارف كبيرة (uppercase).


== مصادر ==
==مصادر==
* [http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/to-big-decimal.html صفحة الدالة toBigDecimal()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/to-big-decimal.html صفحة الدالة toBigDecimal()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Method]]
[[تصنيف:Kotlin Function]]
[[تصنيف:Kotlin Text]]

مراجعة 09:07، 6 سبتمبر 2018

تحلّل الدالة toBigDecimal()السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد من النوع BigDecimal.

البنية العامة

inline fun String.toBigDecimal(): BigDecimal

منصة التشغيل والإصدار المطلوبان: Kotlin 1.2 ، JVM.

تحلّل الدالة toBigDecimal()السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد من النوع java.math.BigDecimal ثم تعيد الناتج.

إن لم تكن السلسلة النصية تمثل عددًا، فسيُطلَق الاستثناء NumberFormatException.

inline fun String.toBigDecimal(
    mathContext: MathContext
): BigDecimal

منصة التشغيل والإصدار المطلوبان: Kotlin 1.2 ، JVM.

تحلّل الدالة toBigDecimal()السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد من النوع java.math.BigDecimal ثم تعيد الناتج.

إن لم تكن السلسلة النصية تمثل عددًا، فسيُطلَق الاستثناء NumberFormatException. أما إن كانت هناك ضرورة للقيام بالتقريب (rounding) لكنّ وضع التقريب (rounding mode) مضبوط إلى القيمة java.math.RoundingMode.UNNECESSARY، فسيُطلَق الاستثناء ArithmeticException.

يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)).

المعاملات

mathContext

كائن من النوع MathContext يحدد الدقة ويضبط وضع التقريب (rounding mode).

القيم المعادة

عدد من النوع BigDecimal يمثل ناتج تحويل السلسلة النصية المعطاة.

أمثلة

مثالٌ على استعمال الدالة toBigDecimal()‎:

fun main(args: Array<String>) {
    val str = "123.454"

    println(str.toBigDecimal()) // 123.454
    println(str.toBigDecimal().javaClass.kotlin.qualifiedName) // java.math.BigDecimal
}

مثالٌ آخر على استعمال الدالة toBigDecimal()‎:

fun main(args: Array<String>) {
    val str = "aa12344565656"
    
    println(str.toBigDecimal()) // الدالة ستطلق استثناء
}

سيعطي هذا المثال عند تنفيذه الناتج التالي:

Exception in thread "main" java.lang.NumberFormatException
    at java.math.BigDecimal.&amp;lt;init&amp;gt;(BigDecimal.java:494)
    at java.math.BigDecimal.&amp;lt;init&amp;gt;(BigDecimal.java:383)
    at java.math.BigDecimal.&amp;lt;init&amp;gt;(BigDecimal.java:806)
    at Simplest_versionKt.main(Simplest version.kt:4)

انظر أيضًا

مصادر