при преобразовании java String, имеющего Big Decimal в форме объекта json, в JSONObject значение большого десятичного числа изменяется - PullRequest
0 голосов
/ 08 мая 2020
import org.json.JSONObject;

public class Sample {
    public static void main(String [] args) {
        String jsonString = "{\"name\":\"BigdecimalValue\",\"value\":28.074890126710765}";
        JSONObject jsonObject = new JSONObject(jsonString);
        System.out.println(jsonObject);
//expected value=28.074890126710765, actual value=28.074890126710766
    }
}

enter image description here У меня есть десятичное значение, сохраненное в строке java в форме объекта json, когда я конвертирую строку в JSONObject, тогда значение decimal изменяется. Пожалуйста, посмотрите во фрагмент кода и вывести.

1 Ответ

0 голосов
/ 08 мая 2020

Вы можете попробовать следующий код.

import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.math.BigDecimal;

class MyClass{
    public BigDecimal value;
}
public class Test{
    public static void main(String[] a) throws IOException {
        String jsonStr = "{\"value\":27.010203040506070805}";
        ObjectMapper mapper = new ObjectMapper();
        MyClass myObj = mapper.readValue(jsonStr, MyClass.class);
        System.out.print(myObj.value);
    }
}

Вот результат

Test.main () $ 27.010203040506070805

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...