Это потому, что Bigdecimal не потерян, и если вы разделите 1/3, например, это приведет к повторению десятичной до бесконечности. 0.33333333 ... теоретически, если вы умножаете назад, вы получаете точный результат. Но число бесконечности будет генерировать стек над потоком, и в этом случае исключение запускается.
Мое решение:
try {
result = n1.divide(n2);
} catch (ArithmeticException e){
Log.d("Error bigdecimal", e.toString());
result = (n1.doubleValue() / n2.doubleValue());
};
, в этом случае ваш результат не будет сокращен Rounding
Мне нужно создать веб-сервер
blockquote>Да. Вам нужно место, где вы можете сопоставить имя / адрес электронной почты с регистрационными идентификаторами. Эти идентификаторы регистрации должны быть включены в запрос в FCM, например
{ 'registration_ids': ['qrgqry34562456', '245346236ef'], 'notification': { 'body': '', 'title': '' }, 'data': { } }
отправит push на «qrgqry34562456» и «245346236ef».
Идентификатор регистрации, который вы используете в вызов - это тот, который называется «токен» в этом обратном вызове в приложении.
public class MyService extends FirebaseInstanceIdService { @Override public void onTokenRefresh() { } }
вы можете отправить сообщение на другое устройство с помощью этого кода. в этом коде нет необходимости в сервере.
public String send(String to, String body) {
try {
final String apiKey = "AIzaSyBsY_tfCQjUSWEWuNNwQdC1Vtb0szzz";
URL url = new URL("https://fcm.googleapis.com/fcm/send");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization", "key=" + apiKey);
conn.setDoOutput(true);
JSONObject message = new JSONObject();
message.put("to", to);
message.put("priority", "high");
JSONObject notification = new JSONObject();
// notification.put("title", title);
notification.put("body", body);
message.put("data", notification);
OutputStream os = conn.getOutputStream();
os.write(message.toString().getBytes());
os.flush();
os.close();
int responseCode = conn.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Post parameters : " + message.toString());
System.out.println("Response Code : " + responseCode);
System.out.println("Response Code : " + conn.getResponseMessage());
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// print result
System.out.println(response.toString());
return response.toString();
} catch (Exception e) {
e.printStackTrace();
}
return "error";
}