Попытка вывести double без десятичной дроби, когда double вводится как int

Я смог достичь этого в ASP.NET MVC, используя IP-адрес клиента и freegeoip.net API. freegeoip.net является бесплатным и не требует лицензии.

Ниже приведен пример кода, который я использовал.

String UserIP = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (string.IsNullOrEmpty(UserIP))
{
    UserIP = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
string url = "http://freegeoip.net/json/" + UserIP.ToString();
WebClient client = new WebClient();
string jsonstring = client.DownloadString(url);
dynamic dynObj = JsonConvert.DeserializeObject(jsonstring);
System.Web.HttpContext.Current.Session["UserCountryCode"] = dynObj.country_code;

Вы можете пройти через этот пост для более подробной информации. Надеемся, что это поможет!

-1
задан insanity_serum 17 March 2019 в 20:46
поделиться

2 ответа

Я могу предложить поставить точку в строке ввода

if (yourString.contains("."))

Это не лучший способ решить эту проблему, но это работает.

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String buff = scanner.nextLine();
        if (buff.contains(".")){
            double tempDouble = Double.parseDouble(buff);
            System.out.println(tempDouble);
        } else {
            int integer = Integer.parseInt(buff);
            System.out.println(integer);
        }
    }
0
ответ дан sad december 17 March 2019 в 20:46
поделиться

Не уверен, правильно ли я понял ваш вопрос, но я думаю, что вы пытаетесь напечатать двойное без десятичных значений.

Вы можете преобразовать двойное значение в значение типа int, выполнив что-то вроде: int x = (int) y здесь y - double. Теперь, если вы напечатаете x, вы не получите десятичных знаков.

Примечание: int Typecasting не является хорошей идеей, так как ваш двойник может выйти за пределы диапазона.

0
ответ дан Coding Bad 17 March 2019 в 20:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: