0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Go言語とJavaScriptで数値を人にやさしく表示する方法

Last updated at Posted at 2024-10-25

はじめに

Go言語とJavaScriptで開発するプログラムから数値を表示する時、人にやさしく表示するためのパッケージをの紹介です。バイト数をMBやGBにしたり、大きな数値をカンマ区切りで表示するためのものです。
82854982Bytesより82MBのほうが直感的にわかりやすいです。
6582491という数値よりも、6,582,491のほうがわかりやすいというものです。

Go言語のパッケージ

Go言語は、go-humanize

です。

サンプルプログラムは

package main

import (
	"fmt"
	"time"

	"github.com/dustin/go-humanize"
	"github.com/dustin/go-humanize/english"
)

func main() {
	// バイト数
	fmt.Printf("That file is %s.\n", humanize.Bytes(82854982)) // That file is 83 MB.
	// カンマ区切り
	fmt.Printf("You owe $%s.\n", humanize.Comma(6582491)) // You owe $6,582,491.
	// 少数
	fmt.Printf("%f\n", 2.24)                // 2.240000
	fmt.Printf("%s\n", humanize.Ftoa(2.24)) // 2.24
	// 英語の単数、複数形
	fmt.Printf("%s\n", english.Plural(1, "object", ""))  // 1 object
	fmt.Printf("%s\n", english.Plural(42, "object", "")) // 42 objects
	// SI単位
	fmt.Printf("%s\n", humanize.SI(1234000, "bps")) // 1.234mbps
	// 時間差
	fmt.Printf("%s\n", humanize.RelTime(time.Now().Add(time.Hour*24*7*-3), time.Now(), "earlier", "later")) // "3 weeks earlier")
}

で、実行結果は

That file is 83 MB.
You owe $6,582,491.
2.240000
2.24
1 object
42 objects
1.234 Mbps
3 weeks earlier

JavaScriptのパッケージ

JavaScriptはnumeral.js

です。

サンプルプログラムは

var numeral = require('numeral');

// バイト数
console.log("That file is " + numeral(82854982).format("0b") + ".") // That file is 83 MB.
// カンマ区切り
console.log("You owe $", numeral(6582491).format("0,0") +".") // You owe $6,582,491.
// 少数
console.log(2.24)                // 2.240000
console.log(numeral(2.24).format("0.00")) // 2.24
// SI単位
console.log(numeral(1234000).format('0.000a')+"bps"); // 1.234Mbps
// 時間
console.log(numeral(63846).format('00:00:00')); // 17:44:06

で実行結果は

That file is 83MB.
You owe $ 6,582,491.
2.24
2.24
1.234mbps
17:44:06

余談

これらのパッケージは、

の開発で使っています。

image.png

の赤枠の部分です。直感的にサイズ感がわかると思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?