- ベストアンサー
少数点以下の端数処理
少数点以下の端数処理で 少数点以下2位は切り上げ 少数点以下1位は 0.1~0.4の場合は0.5になり 0.6~0.9の場合は1.0になるようにプログラミングしたいのですが どのようにしたらいいのか教えてください 例 24.03の場合 24.03 → 24.1 ですが、0.5ずつですので、 24.1 → 24.5 になります。 ※24個と半分にしたい。 24.56の場合 24.56 → 24.6 24.6 → 25 よろしくねがいします。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
0.0001~0.5 の場合は0.5になり 0.5001~1.0 の場合は1.0になるように ということでよいのなら b = -Int(-a * 2 + 0.00005 ) / 2 です。 0.00005は誤差に対応するために付けています。(参考URL) (もしかしたら2重入力になったかもしれません。)
その他の回答 (7)
- ziziwa1130
- ベストアンサー率21% (329/1546)
2倍した数値を切り上げ、2で割れば良いですよ。
- foomufoomu
- ベストアンサー率36% (1018/2761)
0.00000001~0.5の場合は0.5になり 0.50000001~1.0の場合は1.0になる ということでよいなら b = -Int(-a*2)/2 です。
- web2525
- ベストアンサー率42% (1219/2850)
エクセルの計算式で =INT(A1)+((ROUNDUP(MOD(A1,1),1)>0)+(ROUNDUP(MOD(A1,1),1)>0.5))*0.5 A1セルに元の数値が入っています、INT・ROUNDUP・MODは通常のプログラム言語でも利用可能と思われますので参考になれば
言語はVBですよね。 こんな形になります。 ------------------------------- Dim x1, x2, x3 As Double x1 = 入力値 x2 = x1 - Math.Floor(x1) If (x2 <= 0.5) Then x3 = Math.Floor(x1) + 0.5 Else x3 = Math.Floor(x1) + 1 End If x3が出力値
- 44753
- ベストアンサー率19% (12/63)
No.2です。 こんな感じかな。 int(a+0.49)
- 44753
- ベストアンサー率19% (12/63)
0.49を足して、小数点以下を切捨てる。
- 1050 円(@1050YEN)
- ベストアンサー率69% (477/687)
言語は? VBAであれば Officeバージョン VBであれば .net(バージョン) or vb