> For the complete documentation index, see [llms.txt](https://docs-siticoneframework.gitbook.io/home/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-siticoneframework.gitbook.io/home/net-framework-or-net-core-ui/data-formatting-and-display/siticone-humanizerfloat/read-only-display-features.md).

# Read-Only Display Features

This feature provides pre-formatted representations of the numeric value in various notations, allowing developers to display data in multiple human-friendly formats without additional formatting.

## Overview

The Read-Only Display Features of the SiticoneHumanizerFloat control include several properties that automatically format the numeric value into different representations. These properties include standard humanized text, scientific, engineering, binary, hexadecimal, ordinal, percentage, currency, compact notations, and the absolute value representation. They are computed based on the current configuration of formatting, validation, and localization properties, offering a variety of display options for developers to easily integrate into their .NET WinForms applications.

***

### Key Points

<table><thead><tr><th width="212">Item</th><th>Description</th></tr></thead><tbody><tr><td>Humanized</td><td>Provides a human-readable string representation of the numeric value based on the current formatting settings.</td></tr><tr><td>ScientificNotation</td><td>Displays the numeric value in scientific (exponential) notation (e.g., 1.23E+4).</td></tr><tr><td>EngineeringNotation</td><td>Formats the number using engineering notation where the exponent is a multiple of three (e.g., 1.23E+3).</td></tr><tr><td>BinaryNotation</td><td>Converts and displays the numeric value as a binary memory size (e.g., B, KB, MB, GB, TB).</td></tr><tr><td>HexadecimalNotation</td><td>Returns the hexadecimal representation of the numeric value, prefixed with "0x".</td></tr><tr><td>OrdinalNotation</td><td>Displays the numeric value as an ordinal (e.g., 1st, 2nd, 3rd); note that the value must be a whole number.</td></tr><tr><td>PercentageNotation</td><td>Formats the numeric value as a percentage, scaling the value by 100 and appending a "%" symbol.</td></tr><tr><td>CurrencyNotation</td><td>Returns the value formatted as currency if UseCurrencyFormat is enabled; otherwise, it defaults to standard formatting.</td></tr><tr><td>CompactNotation</td><td>Provides a compact representation of the numeric value using suffixes (e.g., K for thousands, M for millions).</td></tr><tr><td>AbsoluteValue</td><td>Displays the humanized representation of the absolute (non-negative) value of the numeric input.</td></tr></tbody></table>

***

### Best Practices

<table><thead><tr><th width="320">Aspect</th><th>Recommendation</th></tr></thead><tbody><tr><td>Consistent Formatting Configuration</td><td>Ensure that overall formatting settings (e.g., Notation, MaxDecimalPlaces, UseThousandsSeparator) are appropriately configured to get the desired output in each display property.</td></tr><tr><td>Choose the Right Notation</td><td>Utilize the property that best matches your display needs; for example, use ScientificNotation for very large or very small numbers and CompactNotation for dashboards.</td></tr><tr><td>Validate Data Before Display</td><td>Ensure that the numeric value meets validation criteria so that the read-only properties reflect accurate and expected data.</td></tr></tbody></table>

***

### Common Pitfalls

<table><thead><tr><th width="218">Issue</th><th>Description</th><th>Resolution</th></tr></thead><tbody><tr><td>Inappropriate Notation Selection</td><td>The default Humanized property might not always reflect the most user-friendly format for specific data contexts.</td><td>Choose a specific notation property (such as ScientificNotation or CompactNotation) based on the use case requirements.</td></tr><tr><td>Ordinal Formatting Exceptions</td><td>Attempting to display an ordinal notation for non-whole numbers will result in an exception.</td><td>Ensure that the value is a whole number before accessing the OrdinalNotation property.</td></tr><tr><td>Mismatch Between Formatting and Localization</td><td>Inconsistent Culture, DecimalSeparator, or ThousandsSeparator settings can affect the output across different read-only displays.</td><td>Align localization properties with overall formatting settings to maintain consistency across display formats.</td></tr></tbody></table>

***

### Usage Scenarios

<table><thead><tr><th width="217">Scenario</th><th>Description</th></tr></thead><tbody><tr><td>Dashboard Displays</td><td>Utilize CompactNotation and Humanized properties to quickly render large numbers in a concise, readable format.</td></tr><tr><td>Scientific Applications</td><td>Use ScientificNotation or EngineeringNotation for precise and standardized display of numerical data.</td></tr><tr><td>Financial Reporting</td><td>Leverage CurrencyNotation and PercentageNotation for displaying financial data in a clear and consistent manner.</td></tr></tbody></table>

#### Code Example: Displaying Multiple Formats

```csharp
// Create an instance of the humanizer control
var humanizer = new SiticoneHumanizerFloat();

// Configure general formatting settings
humanizer.MaxDecimalPlaces = 4;
humanizer.Notation = SiticoneHumanizerFloat.NotationStyle.Standard;
humanizer.UseThousandsSeparator = true;
humanizer.TrimTrailingZeros = true;

// Assign a sample value
humanizer.Value = 9876543.21;

// Display various read-only representations
Console.WriteLine("Humanized: " + humanizer.Humanized);
Console.WriteLine("Scientific Notation: " + humanizer.ScientificNotation);
Console.WriteLine("Engineering Notation: " + humanizer.EngineeringNotation);
Console.WriteLine("Binary Notation: " + humanizer.BinaryNotation);
Console.WriteLine("Hexadecimal Notation: " + humanizer.HexadecimalNotation);
Console.WriteLine("Percentage Notation: " + humanizer.PercentageNotation);
Console.WriteLine("Compact Notation: " + humanizer.CompactNotation);
Console.WriteLine("Absolute Value: " + humanizer.AbsoluteValue);
```

***

### Real Life Usage Scenarios

<table><thead><tr><th width="257">Scenario</th><th>Description</th></tr></thead><tbody><tr><td>Multi-format Data Displays</td><td>In a financial dashboard, show a number in both CurrencyNotation and PercentageNotation for a comprehensive view of data trends.</td></tr><tr><td>Scientific Instrument Panels</td><td>Display sensor readings in both ScientificNotation and EngineeringNotation to accommodate various analytical needs.</td></tr><tr><td>User-Facing Reporting Tools</td><td>Provide users with multiple display options (e.g., Humanized, OrdinalNotation) for interpreting numerical reports more intuitively.</td></tr></tbody></table>

#### Code Example: User-Facing Reporting

```csharp
// Example: Configuring different displays for a report
var reportHumanizer = new SiticoneHumanizerFloat
{
    MaxDecimalPlaces = 3,
    UseThousandsSeparator = true,
    TrimTrailingZeros = true
};

// Set the value to represent a ranking (ordinal)
reportHumanizer.Value = 21; // Should display as "21st" if using OrdinalNotation
try
{
    Console.WriteLine("Ordinal Notation: " + reportHumanizer.OrdinalNotation);
}
catch (ArgumentException ex)
{
    Console.WriteLine("Error: " + ex.Message);
}

// Set a new value for percentage display
reportHumanizer.Value = 0.875;
Console.WriteLine("Percentage Notation: " + reportHumanizer.PercentageNotation);
```

***

### Troubleshooting Tips

<table><thead><tr><th width="225">Issue</th><th>Possible Cause</th><th>Suggested Action</th></tr></thead><tbody><tr><td>Exception in OrdinalNotation</td><td>The numeric value is not a whole number.</td><td>Ensure that the value is a whole number before accessing the OrdinalNotation property.</td></tr><tr><td>Inconsistent Formatting Across Notations</td><td>Divergence between formatting settings (e.g., custom formats, culture) and read-only display properties.</td><td>Double-check that all global formatting, localization, and rounding properties are correctly configured.</td></tr><tr><td>Unexpected Numeric Representations</td><td>Misinterpretation of the notation style may lead to confusion regarding the displayed value.</td><td>Review the specific read-only property and adjust the Notation property if a different representation is desired.</td></tr></tbody></table>

***

### Review

<table><thead><tr><th width="189">Aspect</th><th>Review Notes</th></tr></thead><tbody><tr><td>Flexibility</td><td>Provides a variety of pre-formatted numeric representations suitable for multiple display contexts.</td></tr><tr><td>Ease of Integration</td><td>Read-only properties can be directly bound to UI elements, simplifying the process of updating displays.</td></tr><tr><td>Potential Issues</td><td>Developers must ensure consistency in configuration across formatting, validation, and localization to avoid discrepancies.</td></tr><tr><td>Extensibility</td><td>The broad range of notations supports diverse application needs, from scientific measurements to financial reporting.</td></tr></tbody></table>

***

### Summary

<table><thead><tr><th width="286">Summary Point</th><th>Description</th></tr></thead><tbody><tr><td>Multi-format Display Options</td><td>Offers a suite of properties to represent numeric values in various formats (e.g., scientific, engineering, currency).</td></tr><tr><td>Simplified Integration</td><td>Read-only display features are designed to be easily integrated into .NET WinForms applications without additional formatting logic.</td></tr><tr><td>Consistency Across Applications</td><td>Ensures that numeric values are displayed consistently based on global settings for formatting and localization.</td></tr><tr><td>Enhances User Experience</td><td>Provides users with clear, easily interpretable representations of complex numeric data.</td></tr></tbody></table>

***

### Additional Considerations

<table><thead><tr><th width="266">Consideration</th><th>Description</th></tr></thead><tbody><tr><td>UI Data Binding</td><td>Consider binding these read-only properties to UI controls (like labels or text boxes) for dynamic data presentation.</td></tr><tr><td>Regular Configuration Review</td><td>Periodically review formatting and localization settings to ensure they meet the evolving needs of your application.</td></tr><tr><td>Extensive Testing</td><td>Test across multiple scenarios and data sets to confirm that the read-only display properties produce the expected output.</td></tr></tbody></table>

#### Code Example: UI Data Binding Example

```csharp
// Example: Binding read-only properties to UI elements in a WinForms application
public partial class MainForm : Form
{
    private readonly SiticoneHumanizerFloat humanizer;

    public MainForm()
    {
        InitializeComponent();
        humanizer = new SiticoneHumanizerFloat
        {
            MaxDecimalPlaces = 3,
            UseThousandsSeparator = true,
            TrimTrailingZeros = true,
            Value = 1234567.89
        };

        // Assuming you have labels on your form named lblHumanized, lblScientific, lblCompact
        lblHumanized.Text = humanizer.Humanized;
        lblScientific.Text = humanizer.ScientificNotation;
        lblCompact.Text = humanizer.CompactNotation;
    }
}
```

***

By leveraging the Read-Only Display Features of the SiticoneHumanizerFloat control, developers can effortlessly present numerical data in various human-friendly formats. This enhances both the visual appeal and the interpretability of complex numbers in diverse application scenarios.
