الأعداد ذات الفاصلة العائمة هي أعداد حقيقية: فقد يكون لها جزء كسري. وتُمثَّل في الآلة كنمط من البتات الثنائية، وفق مواصفة IEEE-754.
ويشير الناس إلى الأعداد ذات الفاصلة العائمة باسم floats.
الأعداد ذات الفاصلة العائمة تحمل إشارة دائمًا. وكون العدد يحمل إشارة يعني حجز أحد بتاته للدلالة على ما إذا كان سالبًا أم لا.
للأعداد ذات الفاصلة العائمة عرض بتّي، وهو ببساطة عدد البتات التي يتكوّن منها العدد. ويؤثر ذلك في المدى والدقة للقيم التي يمكن أن يمثّلها ذلك النوع.
في Rust نوعان أوّليان للأعداد ذات الفاصلة العائمة: f32 وf64. والرقم الذي يلي الحرف f يدل على عرض البتات. وفي لغات أخرى، يُشار إلى f32 أحيانًا باسم «الدقة الأحادية»، وإلى f64 أحيانًا باسم «الدقة المزدوجة».
عمومًا، استخدم f64: فهو بسرعة f32 نفسها على معظم العتاد الاستهلاكي الحديث، ويقلّل بشكل ملحوظ من حالات عدم الدقة في الأعداد ذات الفاصلة العائمة.
إن احتجت إلى أعداد نسبية بدقة لا نهائية، فقد تستخدم حزمة num-rational، التي توفّر نوع BigRational. وإن احتجت إلى أعداد عشرية ذات دقة ثابتة، فقد تستخدم حزمة rust_decimal، التي توفّر نوع Decimal.
لا تُجري Rust أي تحويلات عددية ضمنية. وإن احتجت إلى التحويل بين أنواع الأعداد العائمة، فلديك استراتيجيتان أساسيتان: الكلمة المفتاحية as، والسِمَتان From وTryFrom.
استخدام الكلمة المفتاحية as بسيط: expr as Type. لكن هناك عددًا من التحذيرات والتفاصيل الدقيقة التي عليك أخذها في الحسبان عند استخدام تحويلات as.
التحويل القائم على السمات أعقد قليلًا، لكنه أكثر أمانًا: فلا تُنفَّذ سمات التحويل إلا حيث تكون آمنة. على سبيل المثال، تُنفّذ f32 السمات From<u8> وFrom<u16> وFrom<i8> وFrom<i16>: فأي قيمة يمكن تمثيلها بأي من هذه الأنواع مضمون أنها قابلة للتمثيل في f32. ويمكن استخدامها على النحو f32::from(expr) أو expr.into()، حيث تُحلّ expr إلى أحد تلك الأنواع.
عند تحويل قيم الأعداد ذات الفاصلة العائمة، يُفضَّل غالبًا التحويل بـ as لمجرد ندرة تطبيقات التحويل القائمة على السمات نسبيًا. وحتى أكتوبر 2020، لم تكن TryFrom منفَّذة للأعداد ذات الفاصلة العائمة. والتحويل بـ as من f32 إلى f64 لا يفقد شيئًا. أما العكس فيفقد بعض الدقة، لكن له بروتوكول تحويل محدَّد يهدف إلى تقليل الفقد إلى أدنى حد.