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

【入門級】円周率が欲しい

Written By: 川俣 晶連絡先

円周率が欲しい §

 float型、double型、decimal型で表現可能な最大の桁数を持った円周率が欲しいとします。

 どう書けば目的を達成できるでしょうか。

 float型はMathF.PI、double型はMath.PIでオッケーです。これらはその型で表現可能な最大の桁数で円周率が定義されているので、それを使っておけば安心です。

 しかし、decimal型に対応するPIはありません。これは自分で書くしかありません。decimal型は桁数が多いので、自分が必要とする精度を確保できる桁数まででオッケーです。

罠の数々 §

  • C#のdouble型などは、内部的には二進数だが、ソース上は十進数で書く、そのため端数が意図通りに処理されないことがある。桁数ぎりぎりまで書く場合は注意しよう。

参考リンク §

Math.PI フィールド

MathF.PI フィールド

 float型を扱う数値関数は全てMathFクラスというわけではないので、Mathクラスとの使い分けは注意しよう。上記のリンクから辿って、Mathクラスのあるもの、MathFクラスにあるものを確認しておこう。

リポジトリ §

https://github.com/autumn009/cshowto

PI §

using System;

class Program

{

    static void Main()

    {

        // double型

        double paiD = Math.PI;

        Console.WriteLine(paiD);

        // float型

        float paiF = MathF.PI;

        Console.WriteLine(paiF);

        // double型

        decimal paiE = 3.1415926535897932384626433833M; // 参考: 必要な桁数を考えて適切な桁数書こう

        Console.WriteLine(paiE);

    }

}

実行結果

3.141592653589793

3.1415927

3.1415926535897932384626433833

Facebook

COOL C# CREW

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

C#ハウツー: 逆引き入門・こんな機能はどう書くの?
キーワード【 川俣晶の縁側ソフトウェアC# コーディング How To
【C# コーディング How To】の次のコンテンツ
2020年
10月
12日
【入門級】ソートが失敗するとき
3days 0 count
total 1246 count
【C# コーディング How To】の前のコンテンツ
2020年
10月
07日
【入門級】3つの値の最大値を得る方法
3days 0 count
total 5625 count

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

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

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

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

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

https://mag.autumn.org/tb.aspx/20201010114715
サイトの表紙【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.