mirror of https://github.com/lua/lua
easier way to change type Number
This commit is contained in:
parent
6759f3ec5e
commit
1088cde03c
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
** $Id: llimits.h,v 1.14 2000/08/29 14:48:16 roberto Exp roberto $
|
** $Id: llimits.h,v 1.15 2000/09/29 12:42:13 roberto Exp roberto $
|
||||||
** Limits, basic types, and some other "installation-dependent" definitions
|
** Limits, basic types, and some other "installation-dependent" definitions
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
|
@ -41,6 +41,13 @@
|
||||||
|
|
||||||
typedef LUA_NUM_TYPE Number;
|
typedef LUA_NUM_TYPE Number;
|
||||||
|
|
||||||
|
/* function to convert a Number to a string */
|
||||||
|
#define lua_number2str(s,n) sprintf((s), "%.16g", (n))
|
||||||
|
|
||||||
|
/* function to convert a string to a Number */
|
||||||
|
#define lua_str2number(s,p) strtod((s), (p))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef unsigned long lint32; /* unsigned int with at least 32 bits */
|
typedef unsigned long lint32; /* unsigned int with at least 32 bits */
|
||||||
|
|
||||||
|
|
6
lvm.c
6
lvm.c
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
** $Id: lvm.c,v 1.138 2000/10/02 14:47:43 roberto Exp roberto $
|
** $Id: lvm.c,v 1.139 2000/10/02 20:10:55 roberto Exp roberto $
|
||||||
** Lua virtual machine
|
** Lua virtual machine
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int luaV_tonumber (TObject *obj) { /* LUA_NUMBER */
|
int luaV_tonumber (TObject *obj) {
|
||||||
if (ttype(obj) != TAG_STRING)
|
if (ttype(obj) != TAG_STRING)
|
||||||
return 1;
|
return 1;
|
||||||
else {
|
else {
|
||||||
|
@ -56,7 +56,7 @@ int luaV_tostring (lua_State *L, TObject *obj) { /* LUA_NUMBER */
|
||||||
return 1;
|
return 1;
|
||||||
else {
|
else {
|
||||||
char s[32]; /* 16 digits, sign, point and \0 (+ some extra...) */
|
char s[32]; /* 16 digits, sign, point and \0 (+ some extra...) */
|
||||||
sprintf(s, "%.16g", (double)nvalue(obj));
|
lua_number2str(s, nvalue(obj)); /* convert `s' to number */
|
||||||
tsvalue(obj) = luaS_new(L, s);
|
tsvalue(obj) = luaS_new(L, s);
|
||||||
ttype(obj) = TAG_STRING;
|
ttype(obj) = TAG_STRING;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue