.net column
.NET開発者のためのブログメディア

開発環境

decimalの使い方とは?様々な言語でのdecimalの使い方を紹介!

2021年04月06日

SE
decimalを誤差なく使う方法について教えてください。

PM
言語によって使い方がそれぞれ違うので、言語ごとに紹介していきましょう。

様々な言語でのdecimalの使い方を紹介します


今回は、様々な言語でのdecimalの使い方を紹介します。
例えば、十進数の「1.1」を2進数に変換すると「1.0001100110011001100110011001…」となり「1001」の部分が無限に繰り返されます。そのため、少数の型に格納するには丸められます。丸めた値で計算すると、計算結果に誤差が生じます。
この誤差をなくして計算するために、decimalを使用します。

ここでは、
・Ruby
・Python
・Java
・C#
・VB.net
でのdecimalの使い方を紹介します。

decimalの使い方に興味のある方はぜひご覧ください。

Ruby

Rubyでのdecimalの使い方を紹介します。実際のソースコードを見てみましょう。BigDecimalを扱うために「require ‘bigdecimal’」が必要です。

実行結果は以下のようになります。

BigDecimal(’数値’)と’数値’.to_dは同じです。to_dを使うほうが、ソースコードがシンプルになります。
BigDecimalでないと計算結果に誤差が生じます。BigDecimalを使うと誤差なく計算できることが分かります。

Python

Pythonでのdecimalの使い方を紹介します。実際のソースコードを見てみましょう。
Decimalを扱うためには「from decimal import Decimal」が必要です。

実行結果は以下のようになります。

Decimalでないと計算結果に誤差が生じます。Decimalを使うと誤差なく計算できることが分かります。

Java

Javaでのdecimalの使い方を紹介します。実際のソースコードを見てみましょう。
BigDecimalクラスを使用するには、「import java.math.BigDecimal;」が必要です。

実行結果は以下のようになります。

加減乗除は「+」や「-」ではなく、addやsubtractなどのメソッドが用意されています。
BigDecimalでないと計算結果に誤差が生じます。BigDecimalを使うと誤差なく計算できることが分かります。

C#

C#でのdecimalの使い方を紹介します。実際のソースコードを見てみましょう。

実行結果は以下のようになります。

decimal でないと計算結果に誤差が生じます。decimal を使うと誤差なく計算できることが分かります。

VB.net

VB.netでのdecimalの使い方を紹介します。実際のソースコードを見てみましょう。

実行結果は以下のようになります。

Decimalでないと計算結果に誤差が生じます。Decimalを使うと誤差なく計算できることが分かります。

SE
それぞれの言語によって、定義の方法が違うのも面白いところですね。

PM
Decimalを利用することで計算結果の誤差がなくなりますが、誤差が必要になるシステムもありますので、確実にマスターしておくことが望ましいでしょう。

まとめ

いかがでしたでしょうか。誤差をなくして計算するために、decimalを使用します。decimalを使用しないと、計算結果に誤差が生じることが分かりました。

ここでは、様々な言語(Ruby、Python、Java、C#、VB.net)でのdecimalの使い方を紹介しました。また、各言語での使い方の違いや加減乗除の計算方法について紹介しました。

演算の誤差があっても良いか否かはシステムによるところがあります。例えば、お金の計算をするようなシステムでは、誤差は致命的です。誤差の発生しないような演算をするように心がけてください。

ぜひご自身でソースコードを書いて、理解を深めてください。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags