https://github.com/sctg-development/scientific-notation
A TypeScript library for formatting numbers in various scientific notation representations including HTML, LaTeX, and MathML.
https://github.com/sctg-development/scientific-notation
Last synced: 6 months ago
JSON representation
A TypeScript library for formatting numbers in various scientific notation representations including HTML, LaTeX, and MathML.
- Host: GitHub
- URL: https://github.com/sctg-development/scientific-notation
- Owner: sctg-development
- License: agpl-3.0
- Created: 2025-02-24T09:07:56.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-03-08T09:45:15.000Z (10 months ago)
- Last Synced: 2025-05-11T20:45:58.534Z (8 months ago)
- Language: TypeScript
- Size: 107 KB
- Stars: 10
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yaml
- License: LICENSE
Awesome Lists containing this project
README
# Scientific Notation Formatter
A TypeScript library for formatting numbers in various scientific notation representations including HTML, LaTeX, and MathML.
## Features
- Convert numbers to scientific notation with configurable precision
- Multiple output formats:
- Standard scientific notation (e.g., `1.23e6`)
- LaTeX (`1.23 \times 10^{6}`)
- MathML (`1.23×106`)
- HTML (`1.23 × 106`)
- Precise control over significant figures
- Standardized exponents (steps of 3)
- Zero handling
- Typescript types included
## Installation
```bash
npm install @sctg/scientific-notation
```
## Usage
```typescript
import { ScientificNotation } from '@sctg/scientific-notation';
// Basic usage
const number = 1234567.89;
const precision = 4;
// Standard scientific notation
console.log(ScientificNotation.toScientificNotationString(number, precision));
// Output: "1.235e6"
// LaTeX format
console.log(ScientificNotation.toScientificNotationLatex(number, precision));
// Output: "1.235 \times 10^{6}"
// HTML format
console.log(ScientificNotation.toScientificNotationHTML(number, precision));
// Output: "1.235 × 106"
// MathML format
console.log(ScientificNotation.toScientificNotationMathML(number, precision));
// Output: "1.235×106"
```
## API Reference
### `toScientificNotation(value: number, precision?: number): ScientificNotationNumber`
Converts a number to scientific notation components.
```typescript
const result = ScientificNotation.toScientificNotation(1234.56, 3);
// Returns: { mantissa: 1.23, exponent: 3 }
```
### `toScientificNotationString(value: number, precision?: number): string`
Returns a string representation in scientific notation.
### `toScientificNotationLatex(value: number, precision?: number): string`
Returns a LaTeX formatted string.
### `toScientificNotationMathML(value: number, precision?: number): string`
Returns a MathML formatted string.
### `toScientificNotationHTML(value: number, precision?: number): string`
Returns an HTML formatted string.
## Types
```typescript
type ScientificNotationNumber = {
mantissa: number; // The coefficient
exponent: number; // The power of 10
};
```
## Features
- Standardizes exponents in steps of 3
- Maintains precision with trailing zeros
- Handles special cases (zero, small numbers)
- Type-safe with TypeScript
## Contributing
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## License
Copyright (c) 2024-2025 Ronan LE MEILLAT
This project is licensed under the GNU Affero General Public License v3.0 - see the [LICENSE](LICENSE) file for details.
## Author
Ronan LE MEILLAT
SCTG Development
## Related Projects
- [@sctg/aga8-js](https://github.com/sctg-development/aga8-js) - GERG-2008 equations of state
- [flow-dilution](https://github.com/sctg-development/flow-dilution) - Gas flow dilution calculator