diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2000-10-03 11:03:21 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2000-10-03 11:03:21 -0300 |
commit | 1088cde03c5551bab90e211e979b11278d666cd5 (patch) | |
tree | c89d322dcbeff8cd3779a32e8fc182656b212ef3 | |
parent | 6759f3ec5e845db6d2637f401d82d707411e41ed (diff) | |
download | lua-1088cde03c5551bab90e211e979b11278d666cd5.tar.gz lua-1088cde03c5551bab90e211e979b11278d666cd5.tar.bz2 lua-1088cde03c5551bab90e211e979b11278d666cd5.zip |
easier way to change type Number
-rw-r--r-- | llimits.h | 9 | ||||
-rw-r--r-- | lvm.c | 6 |
2 files changed, 11 insertions, 4 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: llimits.h,v 1.14 2000/08/29 14:48:16 roberto Exp roberto $ | 2 | ** $Id: llimits.h,v 1.15 2000/09/29 12:42:13 roberto Exp roberto $ |
3 | ** Limits, basic types, and some other "installation-dependent" definitions | 3 | ** Limits, basic types, and some other "installation-dependent" definitions |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -41,6 +41,13 @@ | |||
41 | 41 | ||
42 | typedef LUA_NUM_TYPE Number; | 42 | typedef LUA_NUM_TYPE Number; |
43 | 43 | ||
44 | /* function to convert a Number to a string */ | ||
45 | #define lua_number2str(s,n) sprintf((s), "%.16g", (n)) | ||
46 | |||
47 | /* function to convert a string to a Number */ | ||
48 | #define lua_str2number(s,p) strtod((s), (p)) | ||
49 | |||
50 | |||
44 | 51 | ||
45 | typedef unsigned long lint32; /* unsigned int with at least 32 bits */ | 52 | typedef unsigned long lint32; /* unsigned int with at least 32 bits */ |
46 | 53 | ||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lvm.c,v 1.138 2000/10/02 14:47:43 roberto Exp roberto $ | 2 | ** $Id: lvm.c,v 1.139 2000/10/02 20:10:55 roberto Exp roberto $ |
3 | ** Lua virtual machine | 3 | ** Lua virtual machine |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -39,7 +39,7 @@ | |||
39 | 39 | ||
40 | 40 | ||
41 | 41 | ||
42 | int luaV_tonumber (TObject *obj) { /* LUA_NUMBER */ | 42 | int luaV_tonumber (TObject *obj) { |
43 | if (ttype(obj) != TAG_STRING) | 43 | if (ttype(obj) != TAG_STRING) |
44 | return 1; | 44 | return 1; |
45 | else { | 45 | else { |
@@ -56,7 +56,7 @@ int luaV_tostring (lua_State *L, TObject *obj) { /* LUA_NUMBER */ | |||
56 | return 1; | 56 | return 1; |
57 | else { | 57 | else { |
58 | char s[32]; /* 16 digits, sign, point and \0 (+ some extra...) */ | 58 | char s[32]; /* 16 digits, sign, point and \0 (+ some extra...) */ |
59 | sprintf(s, "%.16g", (double)nvalue(obj)); | 59 | lua_number2str(s, nvalue(obj)); /* convert `s' to number */ |
60 | tsvalue(obj) = luaS_new(L, s); | 60 | tsvalue(obj) = luaS_new(L, s); |
61 | ttype(obj) = TAG_STRING; | 61 | ttype(obj) = TAG_STRING; |
62 | return 0; | 62 | return 0; |