亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? double.c

?? kaffe Java 解釋器語言,源碼,Java的子集系統,開放源代碼
?? C
字號:
/* * java.lang.Double.c * * Copyright (c) 1996, 1997 *	Transvirtual Technologies, Inc.  All rights reserved. * * See the file "license.terms" for information on usage and redistribution  * of this file.  */#include "config.h"#include "config-std.h"#include "config-mem.h"#include "config-hacks.h"#include <math.h>#include <ctype.h>#include "../../../kaffe/kaffevm/classMethod.h"#include "../../../kaffe/kaffevm/gtypes.h"#include "../../../kaffe/kaffevm/locks.h"#include "../../../kaffe/kaffevm/stringSupport.h"#include "../../../kaffe/kaffevm/fp.h"#include "defs.h"#include "files.h"#include "java_lang_Double.h"#include <native.h>/* * Convert a "normal" double to a string with the supplied precision. * The string is stored in the supplied buffer. The buffer is * returned upon completion. * * This assumes printf(3) conforms to ISO 9899: 1990 (``ISO C''). * * If you fix bugs in printing methods in Double.c, please fix them * in Float.c as well. */static char *toCharArrayWithPrecision(char * buf, jdouble val, jint precision) { 	const jlong bits = java_lang_Double_doubleToRawLongBits(val);	char *s;	int k;	/* Deal with negative numbers manually so negative zero is "-0.0" */	s = buf;	if (bits & DSIGNBIT) {		val = -val;		*s++ = '-';	}	/* Print in normal or 'scientific' form according to value */	if (val == 0.0 || (val >= 1.0e-3 && val < 1.0e7)) {		/* Print in decimal notation */		sprintf(s, "%.*f", (int) precision, (double) val);		/* Remove trailing zeroes after the decimal point */		for (k = strlen(buf) - 1;		    buf[k] == '0' && buf[k - 1] != '.';		    k--) {			buf[k] = '\0';		}	} else {		char *t, *eptr, *eval;		/* Print in exponential notation */		sprintf(s, "%.*E", (int) precision - 1, (double) val);		/* Find the exponent */		eptr = strchr(buf, 'E');		assert(eptr != NULL);		/* Remove a '+' sign, but leave a '-' sign */		switch (eptr[1]) {		case '-':			eval = &eptr[2];			break;		case '+':			/* remove '+' */			memmove(eptr + 1, eptr + 2, strlen(eptr + 1));			/* fall through */		default:			/* shouldn't ever happen */			eval = &eptr[1];			break;		}		/* Remove leading zeroes in the exponent, if any */		for (t = eval; t[0] == '0' && t[1] != '\0'; t++);		memmove(eval, t, strlen(t) + 1);		/* Remove trailing zeroes after the decimal point */		for (t = eptr - 1; *t == '0' && t[-1] != '.'; t--);		memmove(t + 1, eptr, strlen(eptr) + 1);	}	return buf;}/* * Convert char array to double object. * * If you fix bugs in printing methods in Double.c, please fix them * in Float.c as well. */static doublevalueOfCharArray(char * buf){	double value;	char* startbuf;	char* endbuf;	char* msg = "Bad float/double format";#if defined(STRTOD_m0_BROKEN)	int negate;#endif	startbuf = buf;	/* Skip initial white space */	while(isspace((int) *buf)) {	    buf++;	}#if defined(HAVE_STRTOD)#if defined(STRTOD_m0_BROKEN)	/* Handle negative sign manually */	negate = (*buf == '-');	if (negate) {		buf++;		if (*buf == '-') {	/* disallow double negative */			goto bail;		}	}#endif	/* Parse value; check for empty parse */	value = strtod(buf, &endbuf);	if (endbuf == buf) {		msg = startbuf;		/* this is what JDK 1.1.6 does */		goto bail;	}	/* Skip trailing whitespace and/or type suffixes */	while (*endbuf != '\0') {		switch (*endbuf) {		case ' ':		case '\t':		case '\n':		case '\r':	/* Ignore whitespace */		case 'F':		case 'f':	/* Ignore float suffix. */		case 'D':		case 'd':	/* Ignore double suffix. */			endbuf++;			break;		default:			goto bail;		}	}#if defined(STRTOD_m0_BROKEN)	if (negate) {		value = -value;	}#endif#else  /* HAVE_STRTOD */	/* Fall back on old atof - no error checking */	value = atof(buf);#endif	/* Got a good value; return it */	return (value);bail:	SignalError("java.lang.NumberFormatException", msg);	return (0);}/* * Convert a "normal" double to a string with the supplied precision. * * This assumes printf(3) conforms to ISO 9899: 1990 (``ISO C''). * * If you fix bugs in printing methods in Double.c, please fix them * in Float.c as well. */struct Hjava_lang_String*java_lang_Double_toStringWithPrecision(jdouble val, jint max_precision){	char buf[MAXNUMLEN];	jint min_precision = 1;	jint precision = 0;	/* perform a binary search over precision. */	while (max_precision != min_precision + 1) {	    precision = (max_precision + min_precision) / 2;	    toCharArrayWithPrecision(buf, val, (int) precision);	    if (valueOfCharArray(buf) != val) {		min_precision = precision;	    }	    else {		max_precision = precision;	    }	}	/* we could have exited the loop with	 * precision == min_precision,	 * where the value with min_precision	 * is not equal to val.	 */	if (precision == min_precision) {	    toCharArrayWithPrecision(buf, val, (int) precision + 1);	}	return (checkPtr(stringC2Java(buf)));}/* * Convert string to double object. */doublejava_lang_Double_valueOf0(struct Hjava_lang_String* str){	char buf0[MAXNUMLEN];	/* stringJava2CBuf would silently promote 0 to an empty string */	if (str == 0) {		SignalError("java.lang.NullPointerException", "");	}	stringJava2CBuf(str, buf0, sizeof(buf0));	return valueOfCharArray(buf0);}/* * Convert double to jlong. */jlongjava_lang_Double_doubleToRawLongBits(jdouble val){	return(doubleToLong(val));}/* * Convert jlong to double. */jdoublejava_lang_Double_longBitsToDouble(jlong val){	return(longToDouble(val));}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费观看高清在线观看| 日本视频免费一区| 欧美久久久久久久久中文字幕| 激情综合网最新| 亚洲一二三区在线观看| 一区二区中文字幕在线| 中文欧美字幕免费| 久久久久国产免费免费| 欧美精品一区二区三区很污很色的 | 亚洲国产中文字幕| 国产精选一区二区三区| 国产一区二区三区久久悠悠色av| 国产麻豆午夜三级精品| 欧美日韩高清一区二区不卡 | 不卡av在线网| 成人精品鲁一区一区二区| 在线成人av影院| 亚洲欧美一区二区三区久本道91 | 一区二区在线电影| 亚洲影院久久精品| 免费看欧美女人艹b| 精品一区二区免费在线观看| 欧美自拍丝袜亚洲| 91精品国产综合久久香蕉的特点 | 韩国女主播成人在线| 国产成人日日夜夜| 91看片淫黄大片一级在线观看| 91视频在线观看| 国产日产欧美一区二区三区| 亚洲男人天堂av| av午夜一区麻豆| 91麻豆精品国产91久久久久久久久| 亚洲人成影院在线观看| 国产精品18久久久| 日本一区二区三区免费乱视频| 国产一区二区按摩在线观看| 在线综合+亚洲+欧美中文字幕| 亚洲第一福利一区| 激情另类小说区图片区视频区| 欧美精品第一页| 亚洲午夜视频在线| 欧美日韩亚洲综合一区二区三区 | 色综合久久99| 精品欧美一区二区久久| 日韩理论片一区二区| 久久精品国产久精国产| 一本大道久久a久久精二百| 国产精品久久午夜夜伦鲁鲁| 美女视频网站黄色亚洲| 91老师片黄在线观看| 亚洲精品老司机| 欧美片在线播放| 日韩成人dvd| 日韩一区二区在线播放| 亚洲精选一二三| 在线观看不卡视频| 欧美aa在线视频| 精品国产人成亚洲区| 国产91高潮流白浆在线麻豆| 欧美一区二区在线不卡| 亚洲黄色尤物视频| 欧美日韩免费观看一区二区三区| 日韩国产在线观看| 久久精品综合网| 久久99久久99精品免视看婷婷| 久久夜色精品一区| 蜜臀av在线播放一区二区三区| 日韩精品一区二区三区蜜臀| 午夜视频一区二区三区| 91福利视频久久久久| 成人免费在线播放视频| 欧美日韩久久久一区| 精品在线播放免费| 亚洲精品国产高清久久伦理二区| 777午夜精品视频在线播放| 国产精品亚洲一区二区三区在线| 亚洲特级片在线| 91精品国产91热久久久做人人| 丰满放荡岳乱妇91ww| 亚洲国产一区二区三区青草影视| 精品国产免费一区二区三区四区| www.性欧美| 毛片基地黄久久久久久天堂| 中文字幕一区二区三区乱码在线| 91精品蜜臀在线一区尤物| 成人午夜看片网址| 中文字幕亚洲视频| 欧美sm极限捆绑bd| 欧美在线视频不卡| 成人app软件下载大全免费| 日韩精品每日更新| 色综合久久天天| 国产一区二区三区四| 亚洲va韩国va欧美va| 亚洲欧洲一区二区三区| 欧美精品第1页| 91成人在线精品| 国产91丝袜在线播放| 麻豆国产一区二区| 一区二区高清视频在线观看| 在线播放一区二区三区| 色视频一区二区| 暴力调教一区二区三区| 国产在线精品一区二区不卡了 | 日本aⅴ精品一区二区三区| 国产精品电影一区二区三区| 精品日韩一区二区| 日韩欧美一级二级| 欧美一区二区三区小说| 欧美日韩免费不卡视频一区二区三区| 成人精品亚洲人成在线| 国产精品正在播放| 精品制服美女久久| 美女视频黄 久久| 青青草成人在线观看| 午夜电影久久久| 视频一区二区三区中文字幕| 亚洲专区一二三| 亚洲一线二线三线视频| 亚洲精品国产a| 一区二区成人在线视频| 一区二区三区在线观看国产| 亚洲另类一区二区| 一级日本不卡的影视| 亚洲一区二区在线免费看| 亚洲一区二区三区在线看| 亚洲国产一区二区三区青草影视| 亚洲一区在线观看网站| 婷婷综合另类小说色区| 日本欧美在线看| 九色综合狠狠综合久久| 国产宾馆实践打屁股91| 成人性色生活片免费看爆迷你毛片| 成人性色生活片| 91亚洲精品久久久蜜桃| 欧美日韩国产小视频在线观看| 欧美日本在线一区| 日韩欧美一区电影| 国产视频亚洲色图| 国产精品高潮呻吟久久| 亚洲午夜电影在线观看| 琪琪久久久久日韩精品| 国产一区二区毛片| 99久久精品国产网站| 国产美女久久久久| 成人高清免费在线播放| 欧美在线三级电影| 日韩美女视频在线| 国产精品久久一卡二卡| 亚洲高清不卡在线| 国精品**一区二区三区在线蜜桃| 风间由美中文字幕在线看视频国产欧美 | 久久久精品tv| 亚洲视频一区在线| 日本va欧美va欧美va精品| 高清beeg欧美| 666欧美在线视频| 国产欧美综合在线观看第十页| 亚洲图片你懂的| 精品一区二区影视| 在线一区二区三区做爰视频网站| 欧美一级在线视频| |精品福利一区二区三区| 免费成人av在线播放| 99热精品一区二区| 欧美成人午夜电影| 亚洲一区二区三区四区在线免费观看| 日韩精品一二区| 99视频精品全部免费在线| 91精品国产综合久久蜜臀| 亚洲色图都市小说| 国产精品综合二区| 91精品国产综合久久国产大片| 国产精品久久久久精k8| 久久99精品网久久| 欧美影院精品一区| 欧美另类高清zo欧美| 亚洲国产高清aⅴ视频| 青青草国产精品97视觉盛宴| 成人av在线一区二区三区| 日韩三级精品电影久久久| 亚洲尤物在线视频观看| av一区二区三区黑人| 久久久午夜电影| 久久国产精品无码网站| 欧美日韩一区二区三区四区五区 | 欧美激情中文不卡| 麻豆极品一区二区三区| 91精品婷婷国产综合久久 | 91亚洲大成网污www| 国产欧美一区在线| 国产一区不卡在线| 精品福利二区三区| 蜜臀av亚洲一区中文字幕| 欧美久久久影院| 亚洲高清久久久| 欧美日韩一区二区三区高清| 亚洲欧美日韩国产一区二区三区 | 国产精品久久久久久久久快鸭 | 久久美女高清视频|