C でグラフィカル プログラムをコーディングしていますが、デカルト値が [-1,1] の間にあります。値を四捨五入して、プロットやさらなる計算に使用できるようにするのに問題があります。1 より大きい値を小数で四捨五入する方法は知っていますが、これはこれまで行ったことがありません。
では、値を丸めるにはどうすればよいでしょうか。例えば、
.7213=.7
.7725= .8
.3666667=.4
.25=.2 or .3
.24=.2
任意の提案をいただければ幸いです。:)
C でグラフィカル プログラムをコーディングしていますが、デカルト値が [-1,1] の間にあります。値を四捨五入して、プロットやさらなる計算に使用できるようにするのに問題があります。1 より大きい値を小数で四捨五入する方法は知っていますが、これはこれまで行ったことがありません。
では、値を丸めるにはどうすればよいでしょうか。例えば、
.7213=.7
.7725= .8
.3666667=.4
.25=.2 or .3
.24=.2
任意の提案をいただければ幸いです。:)
浮動小数点値を丸めることはできません (浮動小数点値がどのように格納されるかにより、高い精度で丸めることはできません)。異なる精度で出力することしかできません。すべての float 値を計算に使用する前に小数点以下 1 桁に丸めたい場合は、整数を使用して計算を行い、すべてを 10 倍してから、表示する直前に 10 で割ります。
*10
ほとんどの言語では、 、整数の丸め、およびを使用してアドホックな方法でこのような丸めを実装することがよくあり/10
ます。例えば:
$ cat round.c
#include <stdio.h>
#include <stdint.h>
int main()
{
fprintf(stderr, "%f\n", ((double) ((uint64_t) (10*0.7777))) / 10);
return 0;
}
$ gcc round.c
[tommd@Vodka Test]$ ./a.out
0.700000