-7
A
答えて
2
printf
は、丸めを行うことができますと呼ばれる標準ライブラリ関数:
#include <stdio.h>
int
main(void) {
double dbl = 3456.7856;
printf("%.3f", dbl);
}
あなたには、いくつかの計算に丸めた値を使用したい場合:
#include <stdio.h>
#include <float.h>
#include <math.h>
double
round_to_3(double dbl);
int
main(void) {
double dbl = 3456.7856, dummy; // dummy will hold the integral part of dbl
// , which we won't use
if(modf(dbl, &dummy)) {
dbl = round_to_3(dbl);
}
// Do some computation
printf("%.3f", dbl);
}
double
round_to_3(double dbl) {
char buffer[1 + 1 + DBL_MAX_10_EXP + 1 + 3 + 1];
// Making sure the buffer is big enough:
//
// 1 for the potential sign
// plus 1 for the leading digit
// plus DBL_MAX_10_EXP for the potential digits before the decimal mark
// plus 1 for the decimal mark
// plus 3 for the digits after the decimal mark
// plus 1 for the ending '\0'
sprintf(buffer, "%.3f", dbl);
sscanf(buffer, "%lf", &dbl);
return dbl;
}
このソリューションは奇妙なようだが、それは勝ちましたオーバーフローを引き起こし、最大の精度を提供します。
あなたは、通常は重要ではすなわちbase^exponent
、この場合は10^DBL_MAX_10_EXP
に比べて非常に小さいので、丸めたときにmodf(dbl, &intpart) == 0
を行う必要はありませんが。
関連する問題
- 1. 浮動小数点/小数点から小数点以下3桁までを正確に丸めますか?
- 2. 浮動小数点型の浮動小数点数を使用している浮動小数点数は、浮動小数点数の上位16桁です。
- 3. 浮動小数点丸め
- 4. 浮動小数点数を使ってJavaで小数点以下2桁に丸める方法
- 5. Cの浮動小数点数を丸める#
- 6. 浮動小数点数を10進数に変換
- 7. アンドロイドで浮動小数点数を1桁に丸める方法は?
- 8. opencvでC++で浮動小数点数を丸める方法
- 9. 浮動小数点数をN小数点以下に丸める方法[JAVA]
- 10. 浮動小数点数を2小数点以下に丸める
- 11. ハスケル - 浮動小数点を次の整数に丸める
- 12. 10進数、浮動小数点数を増やす
- 13. 浮動小数点数を小数点以下の桁数に拡張する
- 14. 浮動小数点数を関数に使用する
- 15. 大きな浮動小数点を整数に丸める
- 16. 浮動小数点の丸めを使用する理由は?
- 17. なぜ浮動小数点数を丸めるのですか?
- 18. 2桁から小数点以下3桁に丸めます
- 19. Gnu C++での10進浮動小数点の使い方(g ++)?
- 20. 小数点以下2桁の浮動小数点数と小数点以下6桁の同じ浮動小数点数を比較する
- 21. 浮動小数点数を小数点以下2桁に変換する
- 22. MIPS(アセンブリ) - 浮動小数点数を丸める方法?
- 23. 浮動小数点数をJavaScriptの次の整数に丸める
- 24. Pandas Shiftは浮動小数点数を浮動小数点に変換して丸めます
- 25. 浮動小数点数をルビの最も近い整数に丸める
- 26. C++で異なるIEEE浮動小数点丸めモードを使用する
- 27. C#で16進数をIEEE 754浮動小数点に変換
- 28. Angularjs:浮動小数点数を最も近い数値に丸める方法
- 29. 小数点浮動小数点(C++)
- 30. MIPSの丸め浮動小数点数をプリントアウト
お読みください(ここでは、
^
は、ビット単位のXOR以外の累乗を意味します) [ツアー](http://stackoverflow.com/tour)と[*私はどのように良い質問をしますか?*](http://stackoverflow.com/help/how-to-ask) – Biffenあなたは変数のためにそれをしません。あなたは['printf'](http://en.cppreference.com/w/c/io/fprintf)であなたの出力をフォーマットするときにそれを行います。 –
出力を丸めたり、丸められた値を変数に代入したりしますか? –