From 16fa381fac4e95ba56c42eec2acc04f496d96e1f Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Wed, 1 Dec 2004 03:06:40 +0000
Subject: [PATCH] Use (float) typecast to insure ratios between 50-99% are
 calculated correctly (not rounded up to 100%).

---
 src/sbbs3/chk_ar.cpp | 6 +++---
 src/sbbs3/userdat.c  | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/sbbs3/chk_ar.cpp b/src/sbbs3/chk_ar.cpp
index 632a438c6b..02d54185a0 100644
--- a/src/sbbs3/chk_ar.cpp
+++ b/src/sbbs3/chk_ar.cpp
@@ -394,7 +394,7 @@ bool sbbs_t::ar_exp(uchar **ptrptr, user_t* user)
 				break;
 			case AR_PCR:	/* post/call ratio (by percentage) */
 				if(user->logons>user->posts
-					&& (!user->posts || (100/(user->logons/user->posts))<(long)n))
+					&& (!user->posts || (100/((float)user->logons/user->posts))<(long)n))
 					result=_not;
 				else
 					result=!_not;
@@ -406,7 +406,7 @@ bool sbbs_t::ar_exp(uchar **ptrptr, user_t* user)
 				l=user->dlb;
 				if(!l) l=1;
 				if(user->dlb>user->ulb
-					&& (!user->ulb || (100/(l/user->ulb))<n))
+					&& (!user->ulb || (100/((float)l/user->ulb))<n))
 					result=_not;
 				else
 					result=!_not;
@@ -418,7 +418,7 @@ bool sbbs_t::ar_exp(uchar **ptrptr, user_t* user)
 				i=user->dls;
 				if(!i) i=1;
 				if(user->dls>user->uls
-					&& (!user->uls || (100/(i/user->uls))<n))
+					&& (!user->uls || (100/((float)i/user->uls))<n))
 					result=_not;
 				else
 					result=!_not;
diff --git a/src/sbbs3/userdat.c b/src/sbbs3/userdat.c
index 5cf266a645..836e5ae0dc 100644
--- a/src/sbbs3/userdat.c
+++ b/src/sbbs3/userdat.c
@@ -1523,7 +1523,7 @@ static BOOL ar_exp(scfg_t* cfg, uchar **ptrptr, user_t* user)
 				if(user==NULL)
 					result=not;
 				else if(user->logons>user->posts
-					&& (!user->posts || 100/(user->logons/user->posts)<(long)n))
+					&& (!user->posts || 100/((float)user->logons/user->posts)<(long)n))
 					result=not;
 				else
 					result=!not;
@@ -1535,7 +1535,7 @@ static BOOL ar_exp(scfg_t* cfg, uchar **ptrptr, user_t* user)
 					l=user->dlb;
 					if(!l) l=1;
 					if(user->dlb>user->ulb
-						&& (!user->ulb || 100/(l/user->ulb)<n))
+						&& (!user->ulb || 100/((float)l/user->ulb)<n))
 						result=not;
 					else
 						result=!not;
@@ -1548,7 +1548,7 @@ static BOOL ar_exp(scfg_t* cfg, uchar **ptrptr, user_t* user)
 					i=user->dls;
 					if(!i) i=1;
 					if(user->dls>user->uls
-						&& (!user->uls || 100/(i/user->uls)<n))
+						&& (!user->uls || 100/((float)i/user->uls)<n))
 						result=not;
 					else
 						result=!not;
-- 
GitLab