From 1088cde03c5551bab90e211e979b11278d666cd5 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Tue, 3 Oct 2000 11:03:21 -0300 Subject: easier way to change type Number --- llimits.h | 9 ++++++++- lvm.c | 6 +++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/llimits.h b/llimits.h index 80acda78..a164d766 100644 --- a/llimits.h +++ b/llimits.h @@ -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 ** See Copyright Notice in lua.h */ @@ -41,6 +41,13 @@ 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 */ diff --git a/lvm.c b/lvm.c index 4eda5436..f405b802 100644 --- a/lvm.c +++ b/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 ** 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) return 1; else { @@ -56,7 +56,7 @@ int luaV_tostring (lua_State *L, TObject *obj) { /* LUA_NUMBER */ return 1; else { 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); ttype(obj) = TAG_STRING; return 0; -- cgit v1.2.3-55-g6feb