[問題]0.1を100回たすと?
の解答編です。

まぁ、答えはたくさんあるんですが、
こんなのもありますぜ。ということで解答例

そもさん~

Q.0.1 を 100 回たして答えが 10.0 になるプログラムを書いてください。


A. 解答例。数値にリテラルを指定しないとデフォルトで倍精度として扱います。

【VB】以下の2つのデータ型でくらべてみてね。
Option Strict On の環境でおこなってください。
Module Module1

     Sub Main()

        Dim d1 As Double

        Dim d2 As Decimal

 

        d1 = 0.0#   '0.0R でもOK

        d2 = 0.0@   '0.0D でもOK

        For index As Integer = 1 To 100

            d1 += 0.1#

            d2 += 0.1@

        Next

 

        Console.WriteLine(d1)

        Console.WriteLine(d2)

    End Sub

 

End Module

実行結果
9.99999999999998
10.0



【C#】以下の2つのデータ型を比べてみてね。
VBの場合と同様、数値にリテラルを指定しないとデフォルトで倍精度として扱います。
だだし、VBとキーワードが異なります。ヤヤコシス。

using System;

using System.Collections.Generic;

using System.Text;

 

namespace ConsoleApplicationCS

{

    class Program

    {

        static void Main(string[] args)

        {

            double d1;

            decimal d2;

 

            d1 = 0.0d;

            d2 = 0.0m;

            for (int i = 1; i <= 100; i++)

            {

                d1 += 0.1d;

                d2 += 0.1m;

            }


            Console.WriteLine(d1);

            Console.WriteLine(d2);

        }

    }

}


実行結果
9.99999999999998
10.0