---
title: Float literal approximates a known mathematical constant
description: Datadog, the leading service for cloud-scale monitoring.
breadcrumbs: >-
  Docs > Datadog Security > Code Security > Static Code Analysis (SAST) > SAST
  Rules > Float literal approximates a known mathematical constant
---

# Float literal approximates a known mathematical constant

{% callout %}
# Important note for users on the following Datadog sites: app.ddog-gov.com, us2.ddog-gov.com

{% alert level="danger" %}
This product is not supported for your selected [Datadog site](https://docs.datadoghq.com/getting_started/site.md). ({% placeholder "user-datadog-site-name" /%}).
{% /alert %}

{% /callout %}

## Metadata{% #metadata %}

**ID:** `rust-code-quality/approx-constant`

**Language:** Rust

**Severity:** Error

**Category:** Error Prone

**CWE**: [682](https://cwe.mitre.org/data/definitions/682.html)

## Description{% #description %}

Using a hand-written approximation of a floating-point constant defined in `std::f32::consts` or `std::f64::consts`. The standard library constants carry the maximum precision available for the type so they should be used. For example `std::f64::consts::PI`

## Non-Compliant Code Examples{% #non-compliant-code-examples %}

```rust
// approximate PI
let a = 3.14;
// approximate E
let b = 2.7183_f64;
```

## Compliant Code Examples{% #compliant-code-examples %}

```rust
let a = std::f32::consts::PI;
let b = std::f64::consts::E;
let c = 3.1;
```
  Seamless integrations. Try Datadog Code SecurityDatadog Code Security 
{% icon name="icon-external-link" /%}
 