タイトル : Re^2: SINGLE型の切捨てについて 投稿日 : 2016/11/09(Wed) 11:03 投稿者 : SUZUKI
> Single型で正確な数を要求すること自体やめた方がよいかと思いますが > 希望のことをされるのでしたら > 切り上げの最低値をSingleで求めIf判定された方が解決しやすいかもしれません。 > 掛け算した時点で誤差の数値を拾ってきてしまうので提示された方法で > 行うならDecimalに変換してからDecimalで計算してSingleに戻すとうまくいくかも > しれません。 shuさん回答ありがとうございます Decimalで統一するというのをやっていませんでした Function csp_decimal_syousuu(ByRef dValue As Decimal, ByRef iDigits As Integer, ByRef isw As Integer) As Decimal Dim dCoef As Decimal = CDec(System.Math.Pow(10, iDigits)) Select Case isw Case 0 Return System.Math.Floor(dValue * dCoef) / dCoef End Select End Function のようにDecimal に統一した所 1.00401 -> 1.004 1.004 -> 1.004 1.00301 -> 1.003 1.003 -> 1.003 となりました これで色々試して見たいと思います ありがとうございました |