例えば、
左↓の分を表すint型数値の値を、
右↓のような小数点の形式に直す方法を教えて下さい。
どちらもint型で。
もし、int型で小数点が扱えないなら、最適な型で直したいのですが・・。
※小数点以下の桁数は一桁です。
-----------------------------
120(分) → 2 (時間)
125(分) → 2.1 (時間)
130(分) → 2.2 (時間)
135(分) → 2.3 (時間)
140(分) → 2.3 (時間)
145(分) → 2.4 (時間)
150(分) → 2.5 (時間)
155(分) → 2.6 (時間)
160(分) → 2.7 (時間)
165(分) → 2.7 (時間)
170(分) → 2.8 (時間)
175(分) → 2.9 (時間)
180(分) → 3 (時間)
-----------------------------
No.6ベストアンサー
- 回答日時:
double型変数 = Math.round(int型変数 / 6.0) / 10.0;
とすればとりあえずはできます。
6.0で割ってからさらに10.0で割っているのは、まるめの対応です。
No.8
- 回答日時:
No.7の方につけたしですが、
DecimalFormat("0.0");
とすると、
120 (分) → 2.0(時間)
となってしまうので、
DecimalFormat("0.#");
としたほうがいいでしょう。
No.7
- 回答日時:
数値をフォーマット出力するDecimalFormatクラスはいかがでしょう。
以下のプログラムを実行してみてください。
import java.text.DecimalFormat;
(中 略)
int i = 0;
double d = 0.0;
String s = null;
DecimalFormat df = null;
df = new DecimalFormat("0.0");
for ( i=120; i <=180 ; i++)
{
d = (double)i / 60.0;
s = df.format(d);
System.out.println(
"[" + i + "]=>[" + s + "]");
}
DecimalFormatについては、参考URLを参照してください。
参考URL:http://java.sun.com/j2se/1.4/ja/docs/ja/api/java …
No.5
- 回答日時:
#3の補足です。
javaは割り切れるはずでも仕様上、丸め誤差がでてきてしまい、結果が2.999999・・・などのようになることがありうるので、小数点以下1桁で丸めています。
メソッドを使うのに、java.util.*などのimportを忘れないでください。
No.4
- 回答日時:
こんばんは
int型は整数型ですので、小数は表現できません。
また、上記の変換式はすごい変なんですけど、
-----------------------------
120 (分) → 2 (時間)
126 (分) → 2.1 (時間)
132 (分) → 2.2 (時間)
138 (分) → 2.3 (時間)
144 (分) → 2.4 (時間)
150 (分) → 2.5 (時間)
156 (分) → 2.6 (時間)
162 (分) → 2.7 (時間)
168 (分) → 2.8 (時間)
174 (分) → 2.9 (時間)
180 (分) → 3 (時間)
-----------------------------
であれば、分と時間が1対1になりましたよね。
double hour = (double)minute/60.0 ;
No.3
- 回答日時:
javaのカテゴリーなのでjavaで書きますが・・・
intは「整数」だと宣言しているので、小数は扱えません。
答えをdoubleなどで指定して、以下のように丸めるのがいいのではないでしょうか。
int minutes = 125; // 元の「分」です。
double hours = 0.0; // 答えの「x.x時間」です。
// ***** 小数点を丸めてフォーマット変換 ***** //
DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(1);
df.setMinimumFractionDigits(1);
hours=df.format(minutes/60)
この回答への補足
教えていただいた方法でやってみると、
結果が以下のようになったのですが↓
-----------------------
120 (分) → 2.0 (時間)
125 (分) → 2.0 (時間)
130 (分) → 2.0 (時間)
135 (分) → 2.0 (時間)
140 (分) → 2.0 (時間)
145 (分) → 2.0 (時間)
150 (分) → 2.0 (時間)
155 (分) → 2.0 (時間)
160 (分) → 2.0 (時間)
165 (分) → 2.0 (時間)
170 (分) → 2.0 (時間)
175 (分) → 2.0 (時間)
180 (分) → 3.0 (時間)
-----------------------
こうではなく、できれば質問で書いたように、四捨五入したいのですが
そんなのって無理なのでしょうか・・?
No.2
- 回答日時:
普通に分を60で割るのはだめですか?
120 / 60.0とすれば答えがReal型?float型?(あいまい。。でも、小数点を扱えるやつです。。)で出て来るのでこれといった変換は必要ないと思いますよ。
60.0にするところがポイントです。ここで60としてしまうと答えはint型になってしまい、小数点は扱えません。
No.1
- 回答日時:
何を使って計算しているのかよくわからないので、使える関数もよくわかりませんが、
エクセルならば
=ROUND([分]/60,1)
となります。
round関数は四捨五入の関数です。1つ目の引数が丸める値、2つ目の引数は丸めた後の小数点以下の桁数です。
round関数が使えない環境では、整数化関数intを使って、
=int([分]/6+0.5)/10
とすればいいでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAで “:” を含むセルの特定 2 2023/05/11 16:30
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- Excel(エクセル) TEXT関数(負の値)を集計のため数値に変換したい 5 2022/05/15 23:04
- 数学 至急!!大学2年の女子です。この高校レベルの問題が分からないので教えてください!お願いしますm(_ 2 2022/11/11 22:10
- Excel(エクセル) Excel 時間の引き算でマイナスを表示させることは出来ますか 3 2023/06/14 21:54
- C言語・C++・C# 関数ポインタの高速化のメリット 7 2023/05/05 20:15
- 数学 【数学】 42.2kmの距離を2.11時間で走った時の速さってどうやって求めますか?特に、時間のとこ 2 2022/04/17 16:44
- その他(Microsoft Office) 勤務表のエクセル作成で数式を教えてください。 1 2023/01/17 03:27
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実数からの小数部の取得
-
doubleで入力するには?
-
Javaで何パーセント%かを表示...
-
Javaによる利率計算の実装方法
-
べき乗
-
乱数のdouble型について
-
double型変数値の整数部分のみ...
-
printfでのエラーがわからない...
-
0dの意味を教えてください
-
演算子を使わない演算
-
iアプリで小数計算するのに困っ...
-
JAVAのプログラムで、2乗計算...
-
小数点以下の切捨てにつきまして
-
ダイアログベースの3次Spline...
-
C言語のポインターに関する警告
-
ジャバスクリプトについて。
-
System.err. printlnとSystem.o...
-
1~100までの数字を表示し、か...
-
javaで質問です。 文字列2023/2...
-
ループ処理の際、最後だけ","を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
0dの意味を教えてください
-
Javaで何パーセント%かを表示...
-
実数からの小数部の取得
-
べき乗
-
double型変数値の整数部分のみ...
-
JAVAのプログラムで、2乗計算...
-
printfでのエラーがわからない...
-
doubleとintの違い
-
java のfor文について質問です。
-
分を表す数値(int型)を、小数...
-
99.98+0.01の誤差
-
面積や角度を出力するプログラム
-
ダイアログベースの3次Spline...
-
四捨五入をするメソッドを実装...
-
Javaのeval関数処理
-
最大値を求めるプログラム
-
掛け算演算を使わない掛け算
-
少数50桁以上を表示するには
-
javaで1.8x10の308乗÷...
-
double を すべて bigdecimal
おすすめ情報