dntk
dntk is command line's multi-platform Interactive calculator with bc-compatible syntax and high-precision arithmetic.

✔︎ dntk means calculator in a japanese.
✔︎ dntk is bc-compatible calculator with 28-digit precision (no external bc required!)
✔︎ dntk syntax is compatible with GNU bc. learn syntax more
✔︎ dntk is a NATIVE The Rust Programming Language application.
✔︎ dntk can move cursor, can delete char, can refresh buffer.
✔︎ dntk provides accurate decimal arithmetic without floating-point errors.
✔︎ dntk write color means,
Current dntk's verv3.0.3
Download Page: https://github.com/nnao45/dntk/releases/latest
✨ Key Features
🎯 High-Precision Arithmetic
- 28 decimal digits of precision (exceeds bc's default 20 digits)
- No floating-point errors:
1 + 0.7 = 1.7(not 1.69999...) - Accurate division:
1/3 = .33333333333333333333
⚡ Fast & Lightweight
- No external dependencies (bc command not required!)
- Pure Rust implementation for maximum performance
- Optimized expression evaluation with
fasteval+rust_decimal
🌍 True Cross-Platform
- Works out of the box on Windows, Linux, macOS, and FreeBSD
- No need to install bc.exe on Windows anymore!
- Single binary, easy deployment
🔧 bc-Compatible
- Supports standard bc syntax and functions
- Rich math library: trig/hyperbolic (
sin,cos,tan, …), logarithms (log,ln,log10, …), powers (pow,sqrt,cbrt), aggregations (min,max,hypot) pluslength,scale, and Besselj(n,x)— short aliases likes(),c(),a(),l(),e()still work - Interactive REPL with cursor movement and editing
Platform
dntk support multi-platform 😊 mac, linux, freebsd, and windows!!!
- i686-osx
- x86_64-osx
- i686-linux
- x86_64-linux
- i686-windows
- x86_64-windows
- i686-freebsd
- x86_64-freebsd
Install
Mac
Linux
Windows
FreeBSD
Cargo
zplug
Docker
Can use dntk docker image,
Look!! Very light weight!!🚀
And run,
And...
All OK!! 😎
Options
❯❯❯ dntk -h
Command line's multi-platform interactive calculator with high-precision arithmetic.
USAGE:
dntk [FLAGS] [OPTIONS]
FLAGS:
-h, --help Prints help information
--once Run at only once
-q, --quiet No print information message
--show-limits Print the local limits
-V, --version Prints version information
-w, --white Set White color in a output
OPTIONS:
-i, --inject <inject> Pre-run inject statement to the dntk [default: ]
-s, --scale <scale> Number of decimal places (max 28) [default: 20]
Note: --bc-path option has been removed as dntk no longer requires external bc command!
Pipe Support
|
behave, like bc ☺️
Paste Support
|
|
Windows Support
No additional setup required! 🎉
dntk works out of the box on Windows without installing bc.exe. Just download and run!

Previous versions (v2.2.1 and earlier)
Older versions required bc.exe installation. If you're using an older version:
Recommendation: Upgrade to the latest version for better Windows support!
Keybind
Basic Key
Basic Operation
Operation for Logical
Using Function
dntk ships the bc classics plus a broad math toolkit:
- Aliases for bc-style shortcuts:
s(x) → sin(x),c(x) → cos(x),a(x) → atan(x),l(x) → ln(x),e(x) → exp(x) - Powers & roots:
sqrt(x),cbrt(x),pow(x,y) - Logs & exponentials:
ln(x),log10(x),log2(x),log(base,value)(arbitrary base),exp(x),expm1(x) - Trigonometric family:
sin,cos,tan,asin,acos,atan,atan2 - Hyperbolic family:
sinh,cosh,tanh,asinh,acosh,atanh - Rounding helpers:
abs,sign,floor,ceil,trunc,round - Aggregations:
min(...),max(...),hypot(x,y) - Precision utilities:
length(x)(digit count),scale(x)(fractional digits),obase=for base-2〜36 output - Randomness & special:
rand()/rand(n),srand(seed),j(n,x)Bessel (integer ordern)
more detail 👉 https://www.gnu.org/software/bc/manual/html_mono/bc.html
🔬 Technical Details
Architecture
dntk uses a hybrid approach for optimal performance and precision:
- Expression Parsing:
fasteval- Fast and lightweight expression parser - High-Precision Arithmetic:
rust_decimal- 28-digit decimal precision - Result Formatting: bc-compatible output format
Precision Comparison
| Calculator | Precision | Example: 1+0.7 | Example: 1/3 (20 digits) |
|---|---|---|---|
| bc | 20 digits (default) | 1.7 | .33333333333333333333 |
| dntk (old) | ~15 digits (f64) | 1.69999... ❌ | .33333333333333331483 ❌ |
| dntk (new) | 28 digits | 1.7 ✅ | .33333333333333333333 ✅ |
Dependencies
fasteval- Expression evaluationrust_decimal- High-precision decimal arithmetic (up to 28 digits)- Pure Rust implementation (no C library dependencies)
Why No bc Command Required?
Previous versions wrapped the external bc command. The new version:
- Implements bc-compatible arithmetic in pure Rust
- Eliminates subprocess overhead
- Works on all platforms without external dependencies
- Provides better precision (28 vs 20 digits)
Development Guide
Compile
Binary
Docker
Contribute
Always Welcome!! 😄
Have a nice rust hacking days:sparkles::wink:
Writer & License
dntk was writed by nnao45 (WORK:Infrastructure Engineer, Twitter:@nnao45, MAIL:n4sekai5y@gmail.com).
This software is released under the MIT License, see LICENSE.