Προς το περιεχόμενο

πώς να αγνοήσω τους δεκαδικούς? java


militarist

Προτεινόμενες αναρτήσεις

Έχω φτιάξει ένα app που πέρνει μία τιμή απο ένα excel και το κανει paste σε ένα αλλο online tool.

 

 

 

 Με το παρακατω πέρνω την τιμή:

 

workbook = Workbook.getWorkbook(App.file);

Sheet sheet = workbook.getSheet(1);

 

Cell cell1 = sheet.getCell(4, 27);

System.out.println(cell1.getContents() );
 
Με το παρακάτω κάνω paste:
psess.GetPS().SendKeys((cell1).getContents(), 8, 18);
 
Μερικες φορές η τιμή ειναι με δεκαδικά.
Επειδή δεν μπορώ να επέμβω στο excel, πώς μπορώ να κάνω το tool  να αγνοήση τα δεκαδικά?
 
Ελπίζω να είμαι κατανοητός , αν όχι συγνώμη είμαι καινούργιος στον κόσμο του Java.
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators

Μπορείς να αποθηκεύσεις την τιμή που θες σε Integer. Υπάρχουν επίσης και floor/ceiling μέθοδοι αν θες στρογγυλοποιήσεις.

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μα αυτό σου λέω, αν αποθηκεύσεις την τιμή που διαβάζεις σε Integer δε θα έχεις δεκαδικά.

 

 

Συγνώμη επειδή αυτό δεν ξέρω να το κάνω μήπως μπορείσ να μου δώσεις κάποιο tutorial?

Έψαξα στο google άλλα χάθηκα είναι η αλήθεια......

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators

Όπως βλέπω εδώ η getContents σου επιστρέφει string. Αντί να κάνεις print κατ' ευθείαν τα contents του κελιού, μπορείς να κάνεις κάτι τέτοιο:

int CellValue = Integer.parseInt(cell1.getContents());

Έτσι θα αποθηκεύσεις το ακέραιο μέρος στο CellValue για να το χρησιμοποιήσεις μετά όπως θες.

 

http://www.tutorialspoint.com/java/number_parseint.htm

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

είναι αδύνατον να μην υπάρχει Int( ) συνάρτηση

http://www.techonthenet.com/excel/formulas/int.php

 

To cStr()  το κάνει αλφαριθμητικό, το Val( ) σε νούμερο

 

cStr(Int(Val( ) ) )

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Οκ,

δεν είδα ότι ήταν java...

Έριξα μια ματιά. Αν χρησιμοποιήσει το Parse μπορεί να φάει exception (το οποίο μπορεί να μην επιθυμεί), αλλά δείτε εδώ. Κάποιος δίνει κώδικα για μετατροπή str σε int.

http://stackoverflow.com/questions/5585779/converting-string-to-int-in-java

 

 

 

public static int strToInt( String str ){
    int i = 0;
    int num = 0;
    boolean isNeg = false;

    //Check for negative sign; if it's there, set the isNeg flag
    if (str.charAt(0) == '-') {
        isNeg = true;
        i = 1;
    }

    //Process each character of the string;
    while( i < str.length()) {
        num *= 10;
        num += str.charAt(i++) - '0'; //Minus the ASCII code of '0' to get the value of the charAt(i++).
    }

    if (isNeg)
        num = -num;
    return num;
}

 

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators

https://docs.oracle.com/javase/7/docs/api/java/lang/String.html

 

"A String represents a string in the UTF-16 format"

 

Ο κώδικας που έβαλες δουλεύει με ASCII. Δεν ξέρω (και για να είμαι ειλικρινής δε με νοιάζει κιόλας) αν έτσι θα δουλεύει, αλλά για ποιο λόγο να φτιάξει δική του συνάρτηση γι' αυτό;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Kercyn σε όλα τα συστήματα το ίδιο νούμερο έχει το μηδέν το 48! Το comment στη γραμμή που λέει για ASCII είναι βλακεία! Το παραβλέπουμε!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Τελικά έλυσα το πρόβλημα με το παρακάτω:

 

Cell cell4 = sheet.getCell(3, 7);

     String number3 = cell4.getContents().split("\\.")[0].replaceAll("\\,","");     
     System.out.println(number3);
 
Cell cell5 = sheet.getCell(3, 7);
     String number3 = cell5.getContents().split("\\.")[0].replaceAll("\\,","");     
     System.out.println(number4);
Επεξ/σία από militarist
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...