浮動小数点数を小数点以下のように印刷する方法を教えてください。 11.00は11として印刷する必要がありますが、11.45は同じままにしてください。問題はif文が多分あるかもしれません。助言がありますか?数値がCの小数点以下の数字を持たない場合はfloatにします
答えて
は、ここに私のソリューションです:
#include <stdio.h>
void printDouble(double fp);
int main(void)
{
printDouble(11.0);
printDouble(11.45);
}
void printDouble(double fp)
{
double _fp;
char buffer[40];
int i = 0;
do{
sprintf(buffer, "%.*lf", i, fp);
sscanf(buffer, "%lf", &_fp);
i++;
} while(fp != _fp);
puts(buffer);
}
出力:
11
11.45
は、おそらくこれは、やや非効率的ですが、それは作業を行います。とにかく、浮動小数点数を頻繁に出力する必要はありません。
%eは浮動小数点の整数表現を表示せず、科学記法を使用します。 したがって、fp = 100000.0の場合、%gは100000ではなく1.0e + 5を表示します。これは、OPが要求しているものです。 –
'if'文の問題の存在は、問題が関数ではなく手作業で解決されるべきであるという意味があります。 – edmz
@DaveKnight回答が修正されました –
私の頭に浮かぶ最初の解決策はキャストされています。 これは私がやることです。 あなたの変数が "a"で、印刷したいとします。
float a;
if (if (a-(int)a<0.001 || (int)a-a<0.001)) //1st comment explains this
printf("%d", (int)a);
else
printf("%f", a);
aが123.000001の場合、これは機能しません。 'if(a-(int)a <0.001 ||(int)a-a <0.001)... ' –
Paulに相談していただきありがとうございます。私はそれを完全に忘れてしまった。 –
- 1. 小数点以下を小数点以下の桁数に変換します。
- 2. floatの小数点以下の桁数は何ですか?
- 3. 数値パイプ0または2小数点以下の桁数
- 4. フォーマットがゼロでない場合小数点以下桁数を表示するようにfloat java
- 5. 小数点以下の桁数の場合は、小数点以下2桁までの数値を設定します。
- 6. 小数点以下2桁の小数点以下2桁の小数点以下の桁数
- 7. 小数点以下1桁のfloat乱数を生成
- 8. Yii2通貨フォーマッタが、私は小数点以下4桁の分数を設定したい小数点以下
- 9. 浮動小数点数が同じ有意な小数点以下を持つ
- 10. 小数点以下の小数点以下を小数点以下に丸める方法
- 11. 小数点以下2桁をfloatで表示します。
- 12. C#の小数点以下は
- 13. Oracleの数値の小数点以下を設定します
- 14. 数値をsqrtに変換する方法と、その小数点以下の桁数が異なる場合
- 15. C#の小数点以下3桁の数字
- 16. C#小数点以下に変換されたExcelの割合
- 17. "。" zendバリデータの浮動小数点数の小数点以下は
- 18. 小数点以下の小さな小数点を丸める方法C#
- 19. 小数点以下2桁の小数点以下を切り捨てます
- 20. SQL Server:小数点以下の小数値のデータ型は?
- 21. のC# - 6つの小数点以下
- 22. 小数点以下2〜4小数点以下切り上げ
- 23. 空文字列を小数点以下の関数で返します。C#
- 24. Rails 3 GPS座標の場合、浮動小数点または小数点以下
- 25. 小数点以下の桁数を表す数値フォーマッタ
- 26. クラスを持つ問題は、C++で小数点以下を小数点として返します。
- 27. 小数点以下1桁以上の数字を印刷
- 28. 小数点以下は四捨五入ですが、小数点以下を保持する
- 29. 年次給与&小数点以下2桁の小数点以下の桁数を返します。
- 30. PDOは浮動小数点数をカンマで小数点以下の文字として返します
何を試しましたか?そして小数点以下桁数を印刷したい。 「1.124」または7番目の「0.14285714285714285714285714285714」があるとします。 –
'printf("%g \ n "、var);' 'var'は変数の名前です。 –
見よ[ここ](http://stackoverflow.com/a/5913115/3436922) – LPs