home *** CD-ROM | disk | FTP | other *** search
/ Java 1996 August / Java - Summer 1996.iso / kaffe-0.2 / lib / native / java.lang / java.lang.Double.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-02-12  |  1.2 KB  |  63 lines

  1. /*
  2.  * java.lang.Double.c
  3.  *
  4.  * Copyright (c) 1996 Systems Architecture Research Centre,
  5.  *           City University, London, UK.
  6.  *
  7.  * See the file "license.terms" for information on usage and redistribution
  8.  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  9.  *
  10.  * Written by Tim Wilkinson <tim@sarc.city.ac.uk>, February 1996.
  11.  */
  12.  
  13. #include <native.h>
  14. #include "defs.h"
  15. #include "java.lang.Double.h"
  16.  
  17. /*
  18.  * Convert double to string.
  19.  */
  20. struct Hjava_lang_String*
  21. java_lang_Double_toString(double val)
  22. {
  23.     char str[MAXNUMLEN];
  24.  
  25.     sprintf(str, "%g", val);
  26.     return (makeJavaString(str, strlen(str)));
  27. }
  28.  
  29. /*
  30.  * Convert string to double object.
  31.  */
  32. struct Hjava_lang_Double*
  33. java_lang_Double_valueOf(struct Hjava_lang_String* str)
  34. {
  35.     struct Hjava_lang_Double* obj;
  36.     char buf[MAXNUMLEN];
  37.  
  38.     javaString2CString(str, buf, sizeof(buf));
  39.  
  40.     obj = (struct Hjava_lang_Double*)execute_java_constructor(0, "java.lang.double", 0, "()V");
  41.     unhand(obj)->value = atof(buf);
  42.  
  43.     return (obj);
  44. }
  45.  
  46. /*
  47.  * Convert double to long long.
  48.  */
  49. long long
  50. java_lang_Double_doubleToLongBits(double val)
  51. {
  52.     return (*(long long*)&val);
  53. }
  54.  
  55. /*
  56.  * Convert long long to double.
  57.  */
  58. double
  59. java_lang_Double_longBitsToDouble(long long val)
  60. {
  61.     return (*(double*)&val);
  62. }
  63.