حاسبة ROI
أدخل ما استثمرته وما عاد إليك: استثمار 1000 واسترداد 1200 يعطي صافي ربح قدره 200.00 وعائدًا على الاستثمار بنسبة 20.00 %. تُحسب المبالغ بالسنتات بدقة، فلا تتراكم أخطاء التقريب. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- مبلغ الاستثمار
- 1000
- إجمالي العائد
- 1200
- مبلغ الاستثمار
- 1000.00
- إجمالي العائد
- 1200.00
- صافي الربح
- 200.00
- العائد على الاستثمار (%)
- 20.00
أدخِل رأس المال المستثمر وإجمالي المبلغ المسترد لتحصل على صافي الربح ونسبة ROI، محسوبةً بسنتات صحيحة دقيقة بتقريب half-up بعيدًا عن الصفر إلى منزلتين عشريتين.
ما الذي يقيسه العائد على الاستثمار
يقارن العائد على الاستثمار بين ما أعاده الاستثمار وما كلّفه. اطرح رأس المال المستثمر من إجمالي المبلغ المسترد لتحصل على صافي الربح، ثم اقسم هذا الربح على رأس المال واضرب الناتج في 100. استثمار 1000 واسترداد 1200 يعطي صافي ربح 200.00 وعائدًا بنسبة 20.00 %. الرقم الموجب يعني أن المال نما، والسالب يعني ضياع جزء منه، وعدم استرداد أي شيء يساوي −100 %. ورؤية النسبة بجانب صافي الربح تساعد على فرز الصفقات بسرعة.
سنتات دقيقة وتقريب متوقع
تُحوَّل المبالغ إلى سنتات صحيحة قبل أي عملية حسابية، فلا تتسلل إلى المال الأخطاء الصغيرة للكسور الثنائية: يصبح 1000 و1200 مئة ألف ومئة وعشرين ألف سنت. ثم تُقرَّب النسبة إلى منزلتين عشريتين، بتقريب النصف إلى الأعلى وبعيدًا عن الصفر، فالخسارة التي تقع على النصف تمامًا تُقرَّب بعيدًا عن الصفر لا نحوه. وهذا يسهّل مراجعة عمود عائد بمنزلتين عشريتين في جدولك الخاص سطرًا بسطر.
حالات الاستخدام
فرز الصفقات
اعرِض نسبة ROI وصافي الربح إلى جانب إنفاق رأسمالي بسيط.
التحقق من جدول البيانات
افحص عمود ROI بمنزلتين عشريتين وتقريب half-up مقابل جدولك الخاص، على جانب الخادم.
الأسئلة الشائعة
هل يُسمح بأعداد الفاصلة العائمة؟
لا. استخدم عددًا صحيحًا غير سالب أو سلسلة مال بمنزلتين عشريتين على الأكثر.
كيف تُقرَّب النسبة؟
بقاعدة half-up بعيدًا عن الصفر إلى منزلتين عشريتين، محسوبةً كليًا بالسنتات الصحيحة.
ماذا لو استرددت أقل مما استثمرت؟
يصبح صافي الربح والعائد كلاهما سالبين. وإذا لم يعد إليك شيء، أي استرداد يساوي صفرًا، يكون العائد −100 %، وهذا يعني خسارة الاستثمار كله.
هل يمكن أن يكون رأس المال المستثمر صفرًا؟
لا. يجب أن يكون الاستثمار أكبر من صفر، لأن العائد يُحسب بالقسمة عليه. أما المبلغ المسترد فيمكن أن يكون صفرًا ليمثل خسارة كاملة.
كم منزلة عشرية يمكنني إدخالها؟
منزلتان على الأكثر، مثل 1200.5 أو 1200.50. وتُرفض كصيغة خاطئة إشارة الزائد في البداية، والأصفار الزائدة مثل 01000، والصيغة العلمية، وأكثر من فاصلة عشرية واحدة.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev/roi \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"investment":"1000","return_amount":"1200"}'const res = await fetch("https://api.kit.forhosting.com/dev/roi", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"investment": "1000",
"return_amount": "1200"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/roi",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"investment": "1000",
"return_amount": "1200"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/roi", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"investment":"1000","return_amount":"1200"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"investment":"1000","return_amount":"1200"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/roi", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"investment": "1000",
"return_amount": "1200"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.roi",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
المعادلة وتحليل المبالغ النقدية
ويقبل كل حقل إما عددًا صحيحًا آمنًا غير سالب أو سلسلة عشرية قانونية بمنزلتين كسريتين على الأكثر — فـ "1200" و"1200.5" و"1200.50" جميعها صحيحة، لكن إشارة زائد بادئة أو أصفارًا محشوّة مثل "01000" أو ترميزًا علميًا أو أكثر من فاصلة عشرية واحدة أو حرفيّة عدد عشري في جافاسكربت تُرفض جميعها بوصفها صيغة سيئة. تحسب dev.roi العائدَ على الاستثمار بوصفه (return_amount − investment) ÷ investment × 100، إلى جانب net_profit الذي يقوده. ولتفادي انحراف الفاصلة العائمة الثنائية في المال، يُحلَّل كلا الإدخالين إلى سنتات صحيحة باستخدام BigInt قبل أي حساب: يصير المثالان 1000 و1200 إلى 100000 و120000 سنتًا، فينتج net_profit 200.00 وroi_percent 20.00. ويجب أن يُحلَّل investment إلى أكثر من صفر سنتات كي تكون القسمة معرَّفة؛ ويجوز أن يكون return_amount صفرًا، وهو ما يمثل خسارة كاملة ويعطي −100.00 بالمئة.
السنتات الصحيحة وقاعدة half-up بعيدًا عن الصفر
ويصير الجزءان من المئة المتبقيان المنزلتين العشريتين لسلسلة النسبة. لا يُحسب roi_percent بالفاصلة العائمة أبدًا. فعاملًا كليًا بـ BigInt، يشكّل المحرك profit_cents × 10000، ثم يقسمه على investment_cents بخطوة صريحة من نوع half-up بعيدًا عن الصفر — إذ يضيف نصف المقسوم عليه قبل القسمة الصحيحة ويعكس الإشارة للخسائر، فتُقرَّب قيمة عند −0.5 تمامًا إلى −1 بدل الاتجاه نحو الصفر. وحين يكون return_amount دون investment، يحمل كلٌّ من net_profit وroi_percent إشارة سالبة بادئة: استثمِر 1000، واسترجع 800، فترى net_profit −200.00 مع roi_percent −20.00.
المخرجات والأخطاء وأين تُشغَّل
ويبقى التصميم ضيقًا عن قصد — فالإصدار الأول لا يحوّل إلى معدل سنوي ولا يوزن محفظة ولا يحوّل العملات — كي يبقى السطح المعرَّف قصيرًا وقابلًا للتدقيق. والمهام الفاشلة لا تُخصم أبدًا من الرصيد المدفوع مسبقًا. يعيد كل رد ناجح صدى أربع سلاسل بمنزلتين عشريتين: investment وreturn_amount مُطبَّعتين إلى الصيغة القانونية، وnet_profit بإشارته، وroi_percent. وتستخدم مسارات الخطأ رسائل ثابتة قابلة للمطابقة، يُطلق كلٌّ منها بوصفه invalid_input مُصنَّفًا: غياب investment أو return_amount، أو investment صفري، أو قيمة سالبة تُعلَّم بـ negativo قبل اسم الحقل، ومبلغ نقدي مشوَّه يُبلَّغ عنه بوصفه صيغة غير صالحة.
حالات التكامل
اختبارات golden في CI
ثبّت سلاسل net_profit وroi_percent الدقيقة التي لا تنحرف أبدًا عبر المنصات.
أسئلة تقنية
هل يمكن أن يكون investment صفرًا؟
لا. يجب أن يُحلَّل إلى أكثر من صفر سنتات، وإلا حصلت على خطأ invalid_input مُصنَّف.
هل يمكن أن يكون ROI سالبًا؟
نعم، حين يكون return_amount دون investment؛ فيحمل كلٌّ من net_profit والنسبة إشارة سالبة.
هل هي مجانية في المتصفح؟
نعم. يكلّف API مبلغ $0.002 لكل نداء، ولا يُحاسَب إلا على المهام الناجحة.