水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > System.DoubleのNaN, NegativeInfinity, PositiveInfinity

System.DoubleのNaN, NegativeInfinity, PositiveInfinity

2008年12月14日(日曜日)

System.DoubleのNaN, NegativeInfinity, PositiveInfinity

公開: 2024年12月21日23時0分頃

BMIとローレル指数を計算するだけの、やる気のないプログラムを作成 (C#)。

using System;
public class App{
    public static int Main(string[] args){
        if(args.Length < 2){
            Console.WriteLine("usage: bmicalc height(cm) weight(kg)");
            return 1;
        }
        double height = 0;
        double weight = 0;
        double.TryParse(args[0], out height);
        double.TryParse(args[1], out weight);

        Console.WriteLine("Height: {0}cm", height);
        Console.WriteLine("Weight: {0}kg", weight);

        double bmi = weight / Math.Pow(height/100, 2);
        double rohrerIndex = weight / Math.Pow(height, 3) * 10000000;

        Console.WriteLine("BMI: {0:F}", bmi);
        Console.WriteLine("ローレル指数: {0:F}", rohrerIndex);
        return 0;
    }
}

0で割ると死ぬのでエラー処理が必要……かと思いきや、型がdoubleだと例外にならず、NaN, NegativeInfinity, PositiveInfinity のいずれかが格納されるのですね。

※もともとやる気のないプログラムなので、例外さえ出なければOK。負の数を入れられても気にしません。

関連する話題: C# / メモ

最近の日記

関わった本など