2020年11月13日
川俣晶の縁側ソフトウェアC# コーディング How Tototal 1297 count

【入門級】整数計算だけで1.2倍を計算する

Written By: 川俣 晶連絡先

 1.2倍を計算する場合、普通はa * 1.2のように書きます。

 1.2はdouble型です。

 しかし、double型やfloat型は誤差が多いので、できれば避けたいというケースもあります。

 では整数型だけで1.2倍の計算はできるのでしょうか?

 できます。

 a*12/10でできます。

 10倍大きな数を掛けてから10で割れば良いわけですね。

罠の数々 §

  • 整数の計算に持ち込むと、桁数が溢れやすいので注意。たとえば、100を10倍して計算すると1000になり、これはbyte型の最大値255を越えてしまう
  • 実数と計算した結果も実数になるのだが、整数だけで計算すると結果も整数になる。その結果、端数がある時小数点以下が残ったり残らなかったりして結果に相違が出る可能性がある

参考リンク §

整数数値型 (C# リファレンス)

浮動小数点数値型 (C# リファレンス)

算術演算子 (C# リファレンス)

 整数を計算させたときと実数を計算させたときでは結果に差が出ることがある。上記のリンクからどんなときにどんな差が出るのか確認しておこう。それが思い通りの計算をさせる早道だ!

リポジトリ §

https://github.com/autumn009/cshowto

IntegerAndReal §

using System;

class Program

{

    static void Main()

    {

        int a = 100;

        // 実数で1.2倍する

        Console.WriteLine(a * 1.2);

        // 整数だけで1.2倍する

        Console.WriteLine(a * 12 / 10);

    }

}

実行結果

120

120

Facebook

COOL C# CREW

C#ハウツー連載の解説増量、カラーのソース、新規書き下ろし追加の読みやすい単行本はこちら。

C#ハウツー: 逆引き入門・こんな機能はどう書くの?
キーワード【 川俣晶の縁側ソフトウェアC# コーディング How To
【C# コーディング How To】の次のコンテンツ
2020年
11月
17日
【入門級】ファイルを扱うメソッドで文字列も読み込ませたい!
3days 0 count
total 947 count
【C# コーディング How To】の前のコンテンツ
2020年
11月
12日
【入門級】不変のクラス、一部不変のクラス、可変のクラスを使い分ける
3days 0 count
total 1328 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20201113115921
サイトの表紙【C# コーディング How To】の表紙【C# コーディング How To】のコンテンツ全リスト 【C# コーディング How To】の入手全リスト 【C# コーディング How To】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.