C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.98635 の関連記事表示

<< 0 >>
■98635  Re[1]: 5単位での切り上げ、切り捨て
□投稿者/ KOZ -(2021/12/08(Wed) 18:58:39)
    2021/12/08(Wed) 19:06:28 編集(投稿者)

    No98631 (ゆい さん) に返信
    > これを例えば金額とすれば、0円、5円、10円・・と言ったように
    > 5円単位での「切り上げ・切り捨て」する方法を教えてください。

    仕様がはっきりしないですね・・・

    Sub Main()

    Console.WriteLine("切り上げ")
    For value As Double = 0 To 11
    Console.WriteLine($"{value} → {Ceiling(value, 5)}")
    Next

    Console.WriteLine("切り捨て")
    For value As Double = 0 To 11
    Console.WriteLine($"{value} → {Truncate(value, 5)}")
    Next

    Console.WriteLine("四捨五入?")
    For value As Double = 1.9 To 3.1 Step 0.1
    Console.WriteLine($"{value} → {Round(value, 5)}")
    Next

    Console.ReadKey()
    End Sub

    Function Ceiling(ByVal value As Double, ByVal unit As Double) As Double
    Return Math.Sign(value) * Math.Truncate((Math.Abs(value) + unit - unit / 10) / unit) * unit
    End Function

    Function Truncate(ByVal value As Double, ByVal unit As Double) As Double
    Return Math.Sign(value) * Math.Truncate(Math.Abs(value) / unit) * unit
    End Function

    Function Round(ByVal value As Double, ByVal unit As Double) As Double
    Return Ceiling(Truncate(value * 2, unit) / 2, unit)
    End Function

    キャストが面倒なので全部 Double に。(^_^;)

    どうも図表モードにするのを忘れてしまう・・・
記事No.98631 のレス /過去ログ171より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -