私はフロートとして最初の2つの10進数字を取得したいという巨大な倍数を持っています。次に例を示します。Javaが最初に2つの小数点以下2桁を得ます
double x = 0.36843871
float y = magicFunction(x)
print(y)
出力:36
ご質問はお気軽に理解していない場合。
私はフロートとして最初の2つの10進数字を取得したいという巨大な倍数を持っています。次に例を示します。Javaが最初に2つの小数点以下2桁を得ます
double x = 0.36843871
float y = magicFunction(x)
print(y)
出力:36
ご質問はお気軽に理解していない場合。
あなたは100
掛けるとMath.floor(double)
int y = (int) Math.floor(x * 100);
System.out.println(y);
などを使用することができ、私はあなたが
float
を使用する場合は、あなたが
36.0
になるだろうということ(要求)
36
注得ます。
驚くばかり!ちょうど私が探していたもの。ありがとう:D – ThatPixelCherry
xが1より大きい場合、2桁以上の回答が得られます。 –
'x%1d * 100'が1より大きい場合 – WalterM
x
に100を掛けて、floatの代わりにint
を使用できます。私は以下のコードを試みた:
double x = 0.36843871;
int y = (int)(x*100);
System.out.println(y);
をとして出力を得た:X場合
36
は1より大きく負である:
double x = -31.2232;
double xAbs = Math.abs(x);
String answer = "";
if((int)xAbs == 0) {
answer = "00";
}
else {
int xLog10 = (int)Math.log10(xAbs);
double point0 = xAbs/Math.pow(10, xLog10 + 1); // to 0.xx format
answer = "" + (int)(point0 * 100);
}
System.out.println(answer);
負の場合、すべての範囲を処理します正しく:
double y = Math.abs(x);
while (y < 100)
y *= 10;
while (y > 100)
y /= 10;
return (float)(int)y;
また、正しく表示されません。
'magicFunction'の実装を表示 – Ramanlfc
最初の2つの数字だけを' only 'にして、あなたの例からfloat(または)として保存しますか?36.843871として出力が必要ですか? –
浮動小数点の出力には10進数と10進数が必要です。 – ThatPixelCherry