[JAVA]管理計算機小数点
私はユートゥーバー符号化発電所のアンドロイド計算機を勉強しています.
授業は少しも終わらない状態で終わった.
計算機の小数点問題を直しましょう.
まず、計算結果
1.000000
5314.000000
3.1400000
そのまま出てきました
直接解決するコードです.
まずisnumeric()を使用してresultが整数であるかどうかを検証します.
Ceil(アップロード)とfloor(破棄)の例は以下の通りです.
isnumeric()がtrueの場合、replaceNum()はintに変換されます.
isNumeric()がfalseの場合、小数点の4番目の位置のみが表示され、四捨五入されます.
2位をみんなに見せたいならMathround(結果*100)/100.0)でいいです.
もっと良いコードがあれば教えてください、先輩たちはほほほ
授業は少しも終わらない状態で終わった.
計算機の小数点問題を直しましょう.
まず、計算結果
1.000000
5314.000000
3.1400000
そのまま出てきました
直接解決するコードです.
public void replaceNum(double result){
if(isNumeric(result)){
strResultNumber = String.valueOf((int)result);
}else {
strResultNumber = String.valueOf((Math.round(result*10000)/10000.0));
}
}
public boolean isNumeric(double result){
return Math.ceil(result) == Math.floor(result);
}
既存の結果変数は二重で計算されるため、パラメータ値は二重で計算されます.まずisnumeric()を使用してresultが整数であるかどうかを検証します.
Ceil(アップロード)とfloor(破棄)の例は以下の通りです.
Math.ceil(12.9) = 13; Math.floor(12.9) = 12;
12.9は整数ではありません. Math.ceil(12.0) = 12; Math.floor(12.0) =12;
12.0は整数です.isnumeric()がtrueの場合、replaceNum()はintに変換されます.
isNumeric()がfalseの場合、小数点の4番目の位置のみが表示され、四捨五入されます.
2位をみんなに見せたいならMathround(結果*100)/100.0)でいいです.
もっと良いコードがあれば教えてください、先輩たちはほほほ
Reference
この問題について([JAVA]管理計算機小数点), 我々は、より多くの情報をここで見つけました https://velog.io/@whd4568/JAVA-계산기-소수점-관리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol