Subject | Re: [firebird-support] Round function |
---|---|
Author | Paul Vinkenoog |
Post date | 2009-09-29T23:20:05Z |
Hi Luis,
1: Multiply the argument by 2
2: Use ROUND() to round to the nearest multiple of 0.1
3: Divide the result by 2
You can condense this into one expression: ROUND(2*arg, 1) / 2.0
You may have to cast the result to the required decimal or numeric type.
See http://www.firebirdsql.org/refdocs/langrefupd21-intfunc-round.html,
including the note about the scale of the result.
Hope this helps,
Paul Vinkenoog
PS:
You need Firebird 2.1 or higher for this. But you can work out a similar
solution with the round() UDF in earlier versions.
> Is anyway to round a value to + - 0.05?I'd say:
>
> For example:
>
> For the values value 1.732288 and 0.9324. After the round, i expect the values of 1.75 and 0.95
>
> For the values value 1.7131 and 0.412324. After the round, i expect the values of 1.70 and 0.4
1: Multiply the argument by 2
2: Use ROUND() to round to the nearest multiple of 0.1
3: Divide the result by 2
You can condense this into one expression: ROUND(2*arg, 1) / 2.0
You may have to cast the result to the required decimal or numeric type.
See http://www.firebirdsql.org/refdocs/langrefupd21-intfunc-round.html,
including the note about the scale of the result.
Hope this helps,
Paul Vinkenoog
PS:
You need Firebird 2.1 or higher for this. But you can work out a similar
solution with the round() UDF in earlier versions.