2014-02-12 4 views
1

Я хочу преобразовать двойное значение 1.09478878083135368E7 в int. поэтому я использую(int) не работает?

int formatted = (int) 1.09478878083135368E7;

Затем я отправить это значение на другой вид деятельности в виде строки с помощью

окончательное расстояние строки = String.valueOf (отформатированную);

Я ожидаю увидеть «1» в результате, но то, что я получаю, является 10947878. Любая идея?

ответ

6

1.09478878083135368E7 .. Обратите внимание на E7, это (scientific) E notation для «переместить период E вправо».

Так что в вашем случае; 1.09478878083135368E7 становится 10947887.8083135368, поэтому преобразования в междунар дает нам 10947887 (у вас есть 10947878, которые могли бы быть опечатка?)

+1

добавить, если вы хотите, целое значение, пользовательский 'Math.round' – thepoosh

+0

почему? используя Math.round также получите 10947878 – EasterKim

+1

'Math.Round' может на самом деле получить вас +1 в этом случае из-за' .8'; поэтому число на 'Math.Round' будет' 10947888' (может быть, не то, что вы хотите в этом случае?) – txtechhelp

Смежные вопросы