Eclipse gives me this error message: The literal [number] of type int is out of range. I know that's impossible to define an int with a number which is higher than  2147483647 or lower than -2147483647. The numbers which I want to set as an int are mobile phone numbers (in Switzerland they can have maximum the value of 0999999999 - Isn't this already enough low to define it as an int??).  I changed the variable type of the attributes date and number in the class Person to long. Now I receive the error message which I mentionned above. Why? How can I fix this?  Thank you.   Here is my code:  public class PhoneBook {      public static void main(String[] args) {              Person sister = new Person ();             Person brother = new Person();             Person mother = new Person();             Person father = new Person();              mother.name = "Gertrud";             mother.date = 12041969;             mother.number = 0792467286;              sister.name = "Theresa";             sister.date = 02112002;             sister.number = 0794567843;              brother.name = "Megnitz";             brother.date = 01041999;             brother.number = 0775685421;              father.name = "Randolph";             father.date = 21071966;             father.number = 0764532178;       }  }  ___________________________________________________________________________________________________    public class Person {      String name;     long date;     long number;      public void print() {         System.out.println(name + ", " + "born on " + date + " / " + number);     }  }
4461
This prints 83  System.out.println(0123)   However this prints 123  System.out.println(123)   Why does it work that way?
77376
var i : integer;  i := 1234567;   Given the above, I want the string "1,234,567" as output (assuming UK locale). IntToStr just gives me "1234567". I'm sure there's a one-liner for this, but I can't find it...
2846
Why does the following behave unexpectedly in Python?  &gt;&gt;&gt; a = 256 &gt;&gt;&gt; b = 256 &gt;&gt;&gt; a is b True           # This is an expected result &gt;&gt;&gt; a = 257 &gt;&gt;&gt; b = 257 &gt;&gt;&gt; a is b False          # What happened here? Why is this False? &gt;&gt;&gt; 257 is 257 True           # Yet the literal numbers compare properly   I am using Python 2.5.2. Trying some different versions of Python, it appears that Python 2.3.3 shows the above behaviour between 99 and 100.  Based on the above, I can hypothesize that Python is internally implemented such that "small" integers are stored in a different way than larger integers and the is operator can tell the difference. Why the leaky abstraction? What is a better way of comparing two arbitrary objects to see whether they are the same when I don't know in advance whether they are numbers or not?
59699
Here is the code.  \documentclass{article} \begin{document} \directlua{tex.sprint(tostring(math.sin(math.pi)))} \\ \directlua{tex.sprint(tostring(math.tan(math.pi/2)))} \end{document}   I am expecting the answers as 0 and error . The code above gives some very small and big number. Can I get the expected answers by some modifications in code?
77422
I have a call to a method in a class as follows:  String key1 = "test1"; String key2 = "test2";  long[] datalr = new long[] {}; datalr = TestClass.callerSub(key1,key2);   The test class is as follows:  public class TestClass {  Public TestClass { }  public long[] callerSub(string key1, String key2){  long[] datalr = new long[] {0,0};  datalr[0] = 2; datalr[1] = 3;  return datalr;  } }   I'm getting the following error in the first class:  Error: Compile Error: Method does not exist or incorrect signature: TestClass.callerSub(String, String) at line 54 column 12       which is the following line:  datalr = TestClass.callerSub(key1,key2);   The datalr data in the callerSub method is just an example above,  Any idea why?  Thanks
99917
If you declare variables of type byte or short and attempt to perform arithmetic operations on these, you receive the error "Type mismatch: cannot convert int to short" (or correspondingly "Type mismatch: cannot convert int to byte").   byte a = 23; byte b = 34; byte c = a + b;   In this example, the compile error is on the third line.
78724
This code in JS gives me a popup saying "i think null is a number", which I find slightly disturbing. What am I missing?    if (isNaN(null)) {   alert("null is not a number"); } else {   alert("i think null is a number"); }     I'm using Firefox 3. Is that a browser bug?  Other tests:    console.log(null == NaN);   // false console.log(isNaN("text")); // true console.log(NaN == "text"); // false     So, the problem seems not to be an exact comparison with NaN?  Edit: Now the question has been answered, I have cleaned up my post to have a better version for the archive. However, this renders some comments and even some answers a little incomprehensible. Don't blame their authors. Among the things I changed was:   Removed a note saying that I had screwed up the headline in the first place by reverting its meaning Earlier answers showed that I didn't state clearly enough why I thought the behaviour was weird, so I added the examples that check a string and do a manual comparison.
74793
I have written a method which I will call in a Trigger.While trying to save this code as Apex class, I am getting the error " Error: Compile Error: Loop variable must be of type SObject at line 7 column 13"   My code goes as below ,appreciate any help, thanks  public class LeadBefore {     public static void UpdateChapterEmailAddress (){          set&lt;Id&gt; JDRFLocationId = new set&lt;Id&gt;();         List&lt;Lead&gt; vLstLead = new List&lt;Lead&gt;();           for(Lead vLead:trigger.new)         {             if(vLead.JDRF_Location__c != null)             {                 JDRFLocationId.add(vLead.JDRF_Location__c);                 vLstLead.add(vLead);             }         }         Map&lt;Id, JDRF_Location__c&gt; vMapIdJDRFLocat = new Map&lt;Id, JDRF_Location__c&gt;([Select Id, Name, General_Email_Address__c from JDRF_Location__c where Id In: JDRFLocationId]);         for(Lead vLead: vLstLead)         {             if(vMapIdJDRFLocat.containsKey(vLead.JDRF_Location__c))             {                 vLead.Chapter_Email_Address__c = vMapIdJDRFLocat.get(vLead.JDRF_Location__c).General_Email_Address__c;             }         }     } }
81943
How does one parse an integer to string(char* || char[]) in C? Is there an equivalent to the Integer.parseInt(String) method from Java in C?
8992
In C++, I enjoyed having access to a 64 bit unsigned integer, via unsigned long long int, or via uint64_t. Now, in Java longs are 64 bits, I know. However, they are signed.  Is there an unsigned long (long) available as a Java primitive? How do I use it?
4641
I have a question about the primitive type short in Java. I am using JDK 1.6.   If I have the following:   short a = 2; short b = 3; short c = a + b;   the compiler does not want to compile - it says that it "cannot convert from int to short" and suggests that I make a cast to short, so this:  short c = (short) (a + b);   really works. But my question is why do I need to cast? The values of a and b are in the range of short - the range of short values is {-32,768, 32767}. I also need to cast when I want to perform the operations -, *, / (I haven't checked for others).  If I do the same for primitive type int, I do not need to cast aa+bb to int. The following works fine:  int aa = 2; int bb = 3; int cc = aa +bb;   I discovered this while designing a class where I needed to add two variables of type short, and the compiler wanted me to make a cast. If I do this with two variables of type int, I don't need to cast.   A small remark: the same thing also happens with the primitive type byte. So, this works:  byte a = 2; byte b = 3; byte c = (byte) (a + b);   but this not:  byte a = 2; byte b = 3; byte c = a + b;   For long, float, double, and int, there is no need to cast. Only for short and byte values.
22068
Why is Array.Length an int, and not a uint. This bothers me (just a bit) because a length value can never be negative.   This also forced me to use an int for a length-property on my own class, because when you  specify an int-value, this needs to be cast explicitly...  So the ultimate question is: is there any use for an unsigned int (uint)? Even Microsoft seems not to use them.
73098
Is there a way to represent a number with higher than 53-bit precision in JavaScript? In other words, is there a way to represent 64-bit precision number?  I am trying to implement some logic in which each bit of a 64-bit number represents something. I lose the lower significant bits when I try to set bits higher than 2^53.  Math.pow(2,53) + Math.pow(2,0) == Math.pow(2,53)   Is there a way to implement a custom library or something to achieve this?
97059
How is it that Java's BigDecimal can be this painful?  Double d = 13.3D;  BigDecimal bd1 = new BigDecimal(d); BigDecimal bd2 = new BigDecimal(String.valueOf(d));   System.out.println("RESULT 1: "+bd1.toString()); System.out.println("RESULT 2: "+bd2.toString());  RESULT 1: 13.300000000000000710542735760100185871124267578125 RESULT 2: 13.3   Is there any situation where Result 1 would be desired? I know that Java 1.5 changed the toString() method but was this the intended consequence?   Also I realise that BigDecimal has doubleValue() etc, but the library that I am working with helpfully uses a toString() and I can't change that :-(  Cheers.
96976
Is there a way to have a 64 bit enum in C++?  Whilst refactoring some code I came across bunch of #defines which would be better as an enum, but being greater than 32 bit causes the compiler to error.  For some reason I thought the following might work:  enum MY_ENUM : unsigned __int64   {       LARGE_VALUE = 0x1000000000000000,   };
106280
Object o = new Long[0] System.out.println( o.getClass().isArray() ) System.out.println( o.getClass().getName() ) Class ofArray = ???   Running the first 3 lines emits;  true [Ljava.lang.Long;   How do I get ??? to be type long?   I could parse the string and do a Class.forname(), but thats grotty.   What's the easy way?
36557
I am curious as to why an implicit cast fails in...  int? someValue = SomeCondition ? ResultOfSomeCalc() : null;   and why I have to perform an explicit cast instead  int? someValue = SomeCondition ? ResultofSomeCalc() : (int?)null;   It seems to me that the compiler has all the information it need to make an implicit casting decision, no?